输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。


#include<stdio.h>
int main()
{
    char c;
    int letters=0,spaces=0,digits=0,others=0;
    while((c=getchar())!='\n')
    {
        if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
            letters++;
        else if(c>='0'&&c<='9')
            digits++;
        else if(c==' ')
            spaces++;
        else
            others++;
    }
    printf("character:%d,space:%d,digit:%d,others:%d",letters,spaces,digits,others);
    return 0;
}  

3、下列程序段运行后输入“1234567890<回车>”,分析与测试它的输出结 果。(若无输出,就写“无输出”)

#include <stdio.h>
int main(){
    char ch;
    while((ch=getchar())=='0'){
        printf("#");
    }

}
#include<stdio.h>
int main()
{
    char A,B,C, i;
    for(i='X';i<='Z';i++){
        if(i!='X'&&i!='Y'){
            A=i;
        }
    }
    for(i='X';i<='Z';i++){
        if(i!='Z'&&i!='Y'){
            B=i;
        }
    }
    for(i='X';i<='Z';i++){
            if(i!='X'&&i!='Z'){
                C=i;
            }
    }
    printf("A的对手是%c\n",A);
    printf("B的对手是%c\n",B);
    printf("C的对手是%c\n",C);
    return 0;
}

有一篇文章,共有三行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。

#include <stdio.h>
int main() {
    char a[3][80] = {};
    printf("请输入3行文字:\n");
    int  i, j, cont1 = 0, cont2 = 0, cont3 = 0, cont4 = 0, cont5 = 0;

    for (i = 0; i < 3; i++) {
        gets(a[i]);
    }
    for (i = 0; i < 3; i++) {
        for (j = 0; a[i][j]!='\0'; j++) {
            if (a[i][j] >= 'A' && a[i][j] <= 'Z') {
                cont1++;
            } else if (a[i][j] >= '0' && a[i][j] <= '9') {
                cont2++;
            } else if (a[i][j] >= 'a' && a[i][j] <= 'z') {
                cont3++;
            } else if (a[i][j] == ' ') {
                cont4++;
            } else {
                cont5++;
            }
        }
    }
    printf("大写字母%d个\n小写字母%d个\n数字%d个\n空格%d个\n其他%d个\n", cont1, cont3, cont2, cont4, cont5);
    return 0;
}

有一行电文,已按下面规律译成密码: A →Z B→Y C→X …… a→z b→y c→x …… 即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,

#include <stdio.h>
#include<string.h>
int main() {
    char c1[26],c2[26],a[20];
    int i,j,k;
    for (i=0, j='A', k='a'; i<26; c1[i]=j++, c2[i]=k++, i++);
    printf("请输入密码:");
    gets(a);
    for(i=0;i<20;i++){
        for(j=0;j<26;j++){
            if(a[i]==c1[j]){
                a[i]=c1[25-j];
                break;
            }
            if(a[i]==c2[j]){
                a[i]=c2[25-j];
                break;
            }
        }
    }
    printf("译文:");
    puts(a);
    return 0;
}
最后修改:2023 年 10 月 02 日
如果觉得我的文章对你有用,请随意赞赏