首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C程序中空格数的计算

C程序中空格数的计算
EN

Stack Overflow用户
提问于 2018-05-06 13:13:12
回答 1查看 43关注 0票数 0

小写和大写字母,特殊字符和数字工作得很好。程序无法正确计算总字符和空格。我该加些什么才能使这件事奏效?感谢你的帮助!

代码语言:javascript
复制
#include<stdio.h>
#include<string.h>
#include <ctype.h>
#include<conio.h>

main(){
char cMessage[100];
int  cChar,cLow=0, cUp=0, cSpec=0, cSpace=0, cNum=0;

printf("Enter your message: ");
scanf("%s", cMessage);

int x=0;
while(x<strlen(cMessage)){

printf("%c",cMessage[x]);
cChar++;

if(islower(cMessage[x])){ cLow++;}

else if(isupper(cMessage[x])){ cUp++;}

else if(cMessage[x] == ' '){ cSpace++; }

else if(isdigit(cMessage[x])){ cNum++; }

else{ cSpec++;
}
x++;
}
printf("\nTotal Characters: %d", cChar);
printf("\nTotal Lowercase Letters: %d", cLow);
printf("\nTotal Uppercase Letters: %d", cUp);
printf("\nTotal Special Characters: %d", cSpec);
printf("\nTotal Spaces: %d", cSpace);
printf("\nTotal Numbers: %d", cNum);
getch();



}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-06 13:15:53

程序不能正确计算全部字符和空格?原因之一是scanf("%s", cMessage);语句不会读取空白或只读取向上空格。如果您想用空格读取cMessage,那么使用fgets()

代码语言:javascript
复制
fgets(cMessage,sizeof(cMessage),stdin);/* use fgets() instead of scanf() */

或者您可以像这样使用scanf()

代码语言:javascript
复制
scanf("%[^\n]", cMessage);/* it read the whitespaces also */

阅读fgets()这里的手册页,https://linux.die.net/man/3/fgets

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50200107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档