Pau*_*lP1 5 c++ ascii character
我写了一段代码来计算'e'一堆单词中有多少个字符.
例如,如果我输入"I read the news",那么e存在多少个的计数器应为3.
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char s[255],n,i,nr=0;
cin.getline(s,255);
for(i=1; i<=strlen(s); i++)
{
if(s[i-1]=='e') nr++;
}
cout<<nr;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我有两个关于C++中字符的不清楚的事情:
在上面的代码中,如果我strlen(s)用255 替换,我的代码就不起作用了.我只能输入一个单词,程序就会停止.我在学校被教过strlen(s)这个字符串的长度s,在这种情况下,就像我宣称的那样,是255.那么,为什么我不能只输入255而不是strlen(s)?
如果我正常运行上面的程序,它不会显示一个数字,就像它应该做的那样.它向我展示了一个角色(我相信它来自ASCII表,但我不确定),就像一颗心或一颗钻石.它应该e从单词中打印出的数字.
有人可以向我解释这些吗?
strlen(s)给出s变量中保存的字符串的长度,直到第一个NULL字符.所以如果输入"hello",长度将为5,即使s容量为255 ....nr显示为字符,因为它被声明为a char.int例如,要么声明它,要么将它投射到intcout'ing,你会看到一个数字.