请看一下这个程序哪里错了?C语言

来源:百度知道 编辑:UC知道 时间:2024/05/15 16:53:40
功能是统计一条英文句子中字母的个数
#include "stdio.h"
#include "iostream.h"
#include "string.h"
int count(char t[],int len)
{int i,n=0;
for(i=0;i<len;i++)
if(t[i]>='A'&&t[i]<='Z'||t[i]>='a'&&t[i]<='z')
n++;
return n;
}
void main()
{char str[100];
int length,num;
cout<<"请输入一条英文句子:"<<endl;
cin>>str;
length=strlen(str);
num=count(str,length);
cout<<"此英文句子中字母的个数是:"<<num<<endl;
getchar();
}
不好意思,我写错了,是C++,看出错的请告诉我怎么改,谢谢
是这样,可是为什么呢?我确实输入带空格的句子,空格后面的字母就统计不到了,这是怎么回事?怎么改呢

把cin>>str;
改为gets(str);
简单易用,不过又回到C了
匿名大哥说的也很好是C++的

tc30不支持中文

你的库头不好看
cin>>str不行吧,string类还差不多

程序的问题是句中不能有空格,否则第一个空格之后的内容不会被读取!

将主函数中的

cin>>str;

改为

cin.getline(str,99);

即可。

我靠,明明就是C++嘛

当你输入的句子中有空格的时候会有问题,比如"hello world!",cin>>str;这句中str只能接收到hello,空格后面的不能被接收