z c1509036是c 字符串包含几个字符符

C语言统计字母个数问题_百度知道
C语言统计字母个数问题
#include&stdio.h&
int letter=0;
scanf(&%c&,&c);
while((c=getchar())!='\n'){
if(('A'&=c&&c&='Z')||('a'&=c&&c&='z'))
printf(&%d&,letter);
为什么输出的字母总是少一个呀?比如输入“this”,打印出来是3个字...
思路:统计字母有两种方式:1.每次输入一个字符,并判断是否是字母,直到回车退出。//参考代码:#include&stdio.h&int&main(){ char&c; int&num=0; while((c=getchar())!='\n') {
if(('A'&=c&&c&='Z')||('a'&=c&&c&='z'))
num++; } printf(&%d&,num);&&&&&return&0;}/*运行结果:adf&adsfasdf11*/2.定义一个字符数组,一次输入,最后遍历该字符数组,统计字母个数。//参考代码&#include&stdio.h&#include&string.h&int&main(){ char&ch[100]; gets(ch); int&num=0,i; for(i=0;i&strlen(ch);i++)
if(('A'&=ch[i]&&ch[i]&='Z')||('a'&=ch[i]&&ch[i]&='z'))
num++; printf(&%d&,num);&&&&&return&0;}/*运行结果:adf&adsfasdf11*/
='n'a'%c&)||('A'='&lt.h&Z'\=c&&c& } printf(&='z'void main(){
int letter=0;,letter)scanf(& while((c=getchar());;&))
letter++,&c)接收了一个字符,从而导致后面getchar()就少接收了一个字符希望你能理解#include&%d&=c&&c&) {
本回答被提问者采纳
scanf输入了一个字符,然后你没有处理楼上方法正确,之后用while循环处理字母数量,不过解释应该是,所以每次都少计算了第一个,如果第一个字符不是字母那么答案正确
本回答被网友采纳
scanf本来就是一个输入函数。。,而后面的while循环语句处理的接收的字符变量C是getchar函数接收的。,而getchar函数也是接受一个字符的函数,也就是说你输入的第一个字符给scanf函数了,因此总会少了一个字符啊,就把之前用scanf函数接收的字符变量C的值在内存里覆盖了。
scanf(&%c&,&c);输入一个字符,保存一个字符,c=getchar())再次输入一个字符,自动把前面输入的字符覆盖了;你把scanf(&%c&,&c);去掉试试
收起其他2条回答
为您推荐:
其他类似问题
c语言的相关知识
等待您来回答

我要回帖

更多关于 scala z字符串操作 的文章

 

随机推荐