簡體   English   中英

計算C程序中的空格數

[英]Counting the number of spaces in C program

小寫和大寫字母,特殊字符和數字都可以正常工作。 該程序無法正確計算字符總數和空格。 我應該添加些什么來使它起作用? 感謝您的幫助!

#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();



}

程序無法正確計算字符總數和空格? 原因之一是語句scanf("%s", cMessage); 不會讀空格或只讀空格 如果要使用空格讀取cMessage ,請使用fgets()

fgets(cMessage,sizeof(cMessage),stdin);/* use fgets() instead of scanf() */

或者你可以像這樣使用scanf()

scanf("%[^\n]", cMessage);/* it read the whitespaces also */

在這里閱讀fgets()的手冊頁https://linux.die.net/man/3/fgets

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM