我写了一段代码来计算一堆单词中有多少'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;
}
关于C++中的字符,我有两件不清楚的事情:
在上面的代码中,如果我用255替换
strlen(s)
,我的代码就不起作用了。我只能键入一个单词,程序就会停止。我在学校里被教导strlen(s)
是字符串s
的长度,在这种情况下,正如我所宣称的,它是255。那么,为什么我不能只键入255,而不是strlen(s)
呢?如果我正常运行上面的程序,它不会像它应该做的那样向我显示数字。它会向我显示一个字符(我相信它来自ASCII表,但我不确定),就像一颗心或一颗钻石。它应该从单词中打印出
e
的编号。
有人能向我解释一下吗?
strlen(s)
为您提供s
变量中包含的字符串的长度,最长可达第一个NULL字符。因此,如果您输入"hello",则长度将为5,即使s
的容量为255- CCD_ 12被显示为字符,因为它被声明为CCD_。例如,要么将其声明为
int
,要么在couting时将其强制转换为int
,您就会看到一个数字
strlen()
计算字符串的实际长度-第一个