输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数

大哥有没有人讲详细点的,我想问下,输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数
最新回答
听海的哭泣ぃ

2024-06-22 08:40:50

n') 就是一直接收字符直到接收到的是回车.
另外,C语言的输入输出牵涉到一个缓冲机制,这里一直输入直到有一个回车才会从缓冲区读出数据.你不妨试一下编一个程序,输入N行,以EOF结尾,然后输出,你会发现,每输入一行按回车后,下面就会先输出你刚输入的那一行字符,然后再让你继续输入,直到遇上EOF(ctrl+z)相信这样会让你更好的理解.
追问
但是我对EOF这东西不熟悉啊  我也不会用EOF ,至于那个缓冲机制我也不知道   。你能告诉我这两个吗  ?特别是那个EOF   ,我在编程的时候总是会有这个要求  ,但是我查了一些资料还是不知道这个EOF的具体操作  。谢谢
峋姗簌下落

2024-06-22 03:03:21

n') 就是一直接收字符直到接收到的是回车.
另外,C语言的输入输出牵涉到一个缓冲机制,这里一直输入直到有一个回车才会从缓冲区读出数据.你不妨试一下编一个程序,输入N行,以EOF结尾,然后输出,你会发现,每输入一行按回车后,下面就会先输出你刚输入的那一行字符,然后再让你继续输入,直到遇上EOF(ctrl+z)相信这样会让你更好的理解.
共起轻饮

2024-06-22 04:16:52

根据ASCII码判断就差不多了吧。希望下面的代码对你有所帮助:
#include <iostream>
#include <string>
using namespace std;

int main()
{
char ch;
string str;
int charCount, intCount, spaceCount, otherCount;
charCount = intCount = spaceCount = otherCount = 0;

cout << "Please input a string:\n";

while(( ch = getchar() ) != EOF ) {
if(( ch <= 'z' && ch >= 'a' )||
( ch <= 'Z' && ch >= 'A' ))
charCount++;
else { if( ch == ' ' )
spaceCount++;
else { if( ch <= '9' && ch >= '0' )
intCount++;
else
otherCount++;
}
}
}
cout << "The number of character is " << charCount
<< "\nThe number of space is " << spaceCount
<< "\nThe number of integar is " << intCount
<< "\nOther number is " << otherCount - 1 << endl;
return 0;
}
追问
但是我写了一个C语言的  提交上去就是不对啊    我也不知道错在哪里   你能帮我看下不
追答
只能说尽力而为。对C不大熟悉。代码呢?
追问
#include
int main(){ int english=0,space=0,digit=0,other=0; char *p,s[100]; gets(s); p=s; while(*p!='\n') { if(('A'='0'&&*p<='9') digit++; else other++; p++; } printf("%d %d %d %d\n",english,digit,space,other);return 0;}
追答
gets()这个函数我还真不知道哎!运行了一下,将while判断条件改为*p!='\0',应该就可以了吧。你试一试。
追问
哦  谢谢了    试一下哦