猿问

这个代码看不懂哎

#include <stdio.h>

int main(){

    int i,n=0;

    char s[20];

    for(i=0;(s[i]=getchar())!='\n';i++)

        if(s[i]>='A'&&s[i]<='z')

            n++;

    printf("n=%d\n",n);

    for(i=0;s[i]!='n';i++)

        if(s[i]>='A'&&s[i]<='Z')

            printf("%c",s[i]+32);

    else

        printf("%c",s[i]);

    printf("\n");

}

能不能帮把它比较通俗,完整的写法写一遍,谢谢啦

金大大Da
浏览 1433回答 2
2回答

onemoo

第一个for循环:一个个读取从键盘输入的字符,保存到s数组中,直至输入'\n'('\n'也存入数组)结束循环,并且同时判断读到的字符是不是 大小写字母和 [ \ ] _ ` ^ 这几个字符(感觉它就是为了判断是不是字母,但是却连带多判断了几个字符),是字母的话就n++。输出共读到多少个字母(打印n的那句)下一个for循环是打印整个s数组,但是把其中的大写字母都替换成小写字母。
随时随地看视频慕课网APP
我要回答