C++输入句子判断字母数量

#include
using namespace std;

int main() {
cout<<"Please enter a sentence in English."< char sentence[500];
cin.getline (sentence,500);
int count = 0;
int i;
for(char *str = sentence ; str[i] ; str++) {
if((str[i] >= 'a' && str[i] <= 'z')||(str[i] >= 'A' && str[i] <= 'z')) {
count++;
}
}
cout<<"There are "<<count<<" letters in this sentence."<<endl;
return 0;
}

代码如上,请问大神for循环中的条件是什么意思呢?求讲的详细一些...

c++

7个回答

测试条件是数组当前值非空就继续走,如果这个字符落在大小写a到z或者是0-9则计数器加1,不过,你头文件没包含iostream ,i也没初始化,编译即报错。

变量 i 都不用初始化么,你这程序能跑么

fstone_chn
石头 franky 回复Shigure_Q: 我想告诉你,能跑的代码不一定是对的,你想深究一份错的代码是为什么能运行的倒不如去想想怎么写一份正确的代码
接近 4 年之前 回复
Shigure_Q
Shigure_Q 回复fstone_chn: 就是因为能跑才来问啊...后两个条件是什么意思呢?
接近 4 年之前 回复

字符串结尾是'\0',其ascii是0, str[i]==0即str[i]==false,其他任何值str[i]都是等于true。
所以条件就是判断循环没有到字符串末尾。

for循环语句实现在指定条件下的筛检作用

Shigure_Q
Shigure_Q 回复tianliangcsdn: 不好意思回错了...筛选作用是什么意思?不理解第二个与第三个条件
接近 4 年之前 回复
Shigure_Q
Shigure_Q 回复tianliangcsdn: 不好意思回错了...筛选作用是什么意思?不理解第二个与第三个条件
接近 4 年之前 回复
Shigure_Q
Shigure_Q 回复tianliangcsdn: 就是因为能跑才不知道为什么能这么写啊…
接近 4 年之前 回复

判断指针指定的位置内容不为空

正确代码是:
#include
using namespace std;
int main()
{
cout<<"Please enter a sentence in English."< char sentence[500];
cin.getline (sentence,500);
int count = 0;
int i;
for(i=0;sentence[i];i++) //从sentence的第一个非空字符开始,依次遍历直到输入为空,统计字符个数
{
if((sentence[i] >= 'a' && sentence[i] <= 'z')||(sentence[i] >= 'A' && sentence[i] <= 'z'))
{
count++;
}
}
cout<<"There are "<<count<<" letters in this sentence."<<endl;
return 0;
}

测试条件是数组当前值非空就继续走,如果这个字符落在大小写a到z或者是0-9则计数器加1,不过,你头文件没包含iostream ,i也没初始化,编译即报错。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!