解题思路:
注意事项:scanf("%[^\n]*c",s); ^表示”非”,即读入其后面的字符就结束读入。这样想读入一行字符串带空格的字符直接用: scanf("%[^\n]%*c",str); 就可以了, %*c的作用忽略\n,否则后面读入的将一直是\n。
参考代码:
#include<stdio.h> #define MAX 100 void count(char*s) { int nums,numd,numb,numo; nums=numd=numb=numo=0; while(*s!='\0') { if( (*s>='a'&&*s<='z')||(*s>='A'&&*s<='Z') ) nums++; else if(*s>='0'&&*s<='9') numd++; else if(*s==' ') numb++; else numo++; s++; } printf("%d %d %d %d",nums,numd,numb,numo); } int main() { char s[MAX]; scanf("%[^\n]*c",s); count(s); return 0; }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:668 |
printf基础练习2 (C语言代码)浏览:3405 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:333 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:538 |
printf基础练习2 (C语言代码)浏览:648 |
C语言程序设计教程(第三版)课后习题5.7 (C++代码)浏览:879 |
输出正反三角形 (C语言代码)浏览:859 |
C语言程序设计教程(第三版)课后习题8.2 (C语言代码)浏览:5275 |
WU-输出九九乘法表 (C++代码)浏览:1853 |
C语言程序设计教程(第三版)课后习题6.8 (C++代码)浏览:614 |