#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循环中的条件是什么意思呢?求讲的详细一些...
测试条件是数组当前值非空就继续走,如果这个字符落在大小写a到z或者是0-9则计数器加1,不过,你头文件没包含iostream ,i也没初始化,编译即报错。
变量 i 都不用初始化么,你这程序能跑么
for循环语句实现在指定条件下的筛检作用
判断指针指定的位置内容不为空
字符串结尾是'\0',其ascii是0, str[i]==0即str[i]==false,其他任何值str[i]都是等于true。
所以条件就是判断循环没有到字符串末尾。
正确代码是:
#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也没初始化,编译即报错。