实验7.3 字符串

2017-12-05  本文已影响0人  林之禾
7-1 统计大写辅音字母(15 分)
#include <stdio.h>
#include <string.h>
#define STRMAX 81
int main(){
    char str[STRMAX];
    gets(str);
    int count=0;
    for(int i=0;i<strlen(str);i++){
        if(str[i]>='B'&&str[i]<='Z'){
            if(str[i]!='E'&&str[i]!='I'&&str[i]!='O'&&str[i]!='U'){
                count++;
            }
        }
    }
    printf("%d",count++);
    
    return 0;
}
7-2 统计字符出现次数(20 分)
#include <stdio.h>
#include <string.h>
#define STRMAX 81
int main(){
    char str[STRMAX];
    gets(str);
    char ch;
    ch=getchar();
    int count=0;
    for(int i=0;i<strlen(str);i++){
        if(str[i]==ch){
                count++;
        }
    }
    printf("%d",count++);
    
    return 0;
}
7-3 字符串逆序(15 分)
#include <stdio.h>
#include <string.h>
#define STRMAX 81
int main(){
    char str[STRMAX];
    gets(str);
    for(int i=strlen(str)-1;i>=0;i--){
        putchar(str[i]);
    }
    
    
    return 0;
}
7-4 字符串字母大小写转换(15 分)
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define STRMAX 81
int main(){
    char str[STRMAX];
    gets(str);
    for(int i=0;i<strlen(str);i++){
        if(str[i]>='A'&&str[i]<='Z'){
            str[i]=tolower(str[i]);
        }
        else if(str[i]>='a'&&str[i]<='z'){
            str[i]=toupper(str[i]);
        }
    }
    for(int i=0;i<strlen(str);i++){
        if(str[i]!='#'){
            printf("%c",str[i]);
        }
        
    }
    return 0;
}
7-5 查找指定字符(15 分)
#include <stdio.h>
#include <string.h>
#define STRING_SIZE 81
int main() {
    char str[STRING_SIZE];
    char ch,ch1;
    int i=0, flag = 0,ad=0;
    scanf("%c", &ch);
    scanf("%c", &ch1);
    gets(str);
    while(str[i] != '\0') {
        if(str[i] == ch) {
            ad = i;
    flag=1;
        }
        i++;
    }
    if(flag==1) {
        printf("index = %d", ad);
    }
    else{
        printf("Not Found");
    }
    return 0;
}
7-6 字符串转换成十进制整数(15 分)
#include <stdio.h>
#include <string.h>
#define STRMAX 81
int main(){
    char str[STRMAX],str1[STRMAX];
    int i=0,k=0,flag=1,ad=0;
    while((str[i++]=getchar())!='#');
    str[i]='\0';
    for(i=0;str[i]!='\0';i++){
        if(str[i]>='0'&&str[i]<='9'||str[i]>='a'&&str[i]<='f'||str[i]>='A'&str[i]<='F'){
            ad=i;
            break;
        }
    }
    for(i=0;i<ad;i++){
        if(str[i]=='-'){
            flag=0;
        }
    }
    for(i=0;str[i]!='\0';i++){
        if(str[i]>='0'&&str[i]<='9'||str[i]>='a'&&str[i]<='f'||str[i]>='A'&str[i]<='F'){
            str1[k++]=str[i];
        }
    }
    str1[k]='\0';
    int number=0;
    for(i=0;str1[i]!='\0';i++){
        if(str1[i]>='0'&&str1[i]<='9'){
            number=number*16+str1[i]-'0';
        }else if(str1[i]>='a'&&str1[i]<='f'){
            number=number*16+str1[i]-'a'+10;
        }else if(str1[i]>='A'&&str1[i]<='F'){
            number=number*16+str1[i]-'A'+10;
        } 
    }
    if(flag){
            printf("%d",number);
    }else{
            printf("-%d",number);
    }

    return 0;
}
7-7 输出大写英文字母(15 分)
#include <stdio.h>
#include <string.h>
#define STRMAX 81
#define MAX 27
int main()  
{  
    int i, j, isExist, index = 0,flag=0;  
    char str[STRMAX],str1[MAX];
    gets(str);
    for(i=0;i<strlen(str);i++){
        isExist=0;
        if(str[i]>='A'&&str[i]<='Z'){
            for(j=0;j<strlen(str1);j++){
                if(str[i]==str1[j]){
                    isExist=1;
                    break;
                }
            }
            if(!isExist){
                str1[index++]=str[i];
                flag=1; 
            }
        }
    }
    str1[index]='\0';
    if(flag==1){
        puts(str1);
    }else{
        printf("Not Found");
    }
    
      
    return 0;  
}  
7-8 删除重复字符(20 分)
#include <stdio.h>
#include <string.h>
#define STRMAX 81
int main()  
{  
    int i, j, isExist, index = 0,flag=0;  
    char str[STRMAX],str1[STRMAX];
    gets(str);
    for(i=0;i<strlen(str);i++){
        isExist=0;
            for(j=0;j<strlen(str1);j++){
                if(str[i]==str1[j]){
                    isExist=1;
                    break;
                }
            }
            if(!isExist){
                str1[index++]=str[i];
            }
    }
    str1[index]='\0';
    for(i=0;i<strlen(str1)-1;i++){
        for(j=i+1;j<strlen(str1);j++){
            if(str1[i]>str1[j]){
                char temp =str1[i];
                str1[i]=str1[j];
                str1[j]=temp;
            }
    }
    }
    puts(str1);

    
      
    return 0;  
}  
上一篇下一篇

猜你喜欢

热点阅读