这段代码出了错#include <iostream> using namespace std; void fun(char *p, int n) { int letters = 0, digits = 0, spaces = 0, others = 0; for(int i = 0; i < n; i++) { if(isalpha(*(p+i))) // 判断字母 letters++; else if(isdigit(*(p+i))) // 判断数字 digits++; else if(*(p+i) == ' ') // 判断空格 spaces++; else // 其它字符 others++; } cout <<letters <<digits<< spaces<< others << endl; } int main() { char str[100]; cin.getline(str, 100); fun(str, strlen(str)); return 0; }
时间: 2024-03-06 14:50:17 浏览: 53
这段代码出错的原因是在输出时,没有加上对应的提示信息。因为没有提示信息,不知道输出的是字母个数、数字个数、空格个数还是其它字符个数。另外,输出时也应该用空格隔开各个统计结果,方便查看。下面是改正后的代码:
```c++
#include <iostream>
using namespace std;
void fun(char *p, int n)
{
int letters = 0, digits = 0, spaces = 0, others = 0;
for(int i = 0; i < n; i++)
{
if(isalpha(*(p+i))) // 判断字母
letters++;
else if(isdigit(*(p+i))) // 判断数字
digits++;
else if(*(p+i) == ' ') // 判断空格
spaces++;
else // 其它字符
others++;
}
cout << "字母个数:" << letters << " ";
cout << "数字个数:" << digits << " ";
cout << "空格个数:" << spaces << " ";
cout << "其它字符个数:" << others << endl;
}
int main()
{
char str[100];
cout << "请输入一个字符串:" << endl;
cin.getline(str, 100);
fun(str, strlen(str));
return 0;
}
```
现在,输出的结果中包含了对应的提示信息,并且各个统计结果之间用空格隔开了。
阅读全文