我现在也是一个小白吧,这是第一次写博客,以后要坚持,希望能对初学者有一些帮助,认识gets与scanf。
gets读入字符串时,直到换行符结束,但换行符会被丢弃,然后在末尾自动添加‘\0’,而scanf读入字符串时,需要用%s,然后输入时如果输入了空格会认为字符串结束,如果还有输入项,空格后的字符将作为下一个输入项处理。
举个例子,比如说输入一串字符,求这串字符中字母有多少个,空格有多少个,数字有多少个,其他符号有多少个?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include<stdio.h> #include<string.h> void a(char b[80]); //对自定义函数声明 int main() {char b[80]; gets(b); //不可以用scanf,scanf碰到空格就认为终止了 ,后面不再判断了 a(b); //调用函数 } void a(char b[80]) {int i,d,g=0,h=0,j=0,k=0; //g代表字母个数,h代表数字个数,j代表空格个数,k代表其他字符 d=strlen(b); for(i=0;i<=d-1;i++) {if((b[i]>='a'&&b[i]<='z')||(b[i]>='A'&&b[i]<='Z')) g=g+1; else if(b[i]>='0'&&b[i]<='9') h=h+1; else if(b[i]==' ') j=j+1; else k=k+1; }printf("%d %d %d %d",g,h,j,k); } |