C语言:编写一个程序,接受一个用户输入的一行字符,按回车结束

要求使用指针;分别统计其中大小写字母,空格、数字和其它字符个数。
在C++中运行

int main()
{
char str[100],*p;
int cout[4]={0};
scanf("%[^\n]",&str);
p=str;
while(*p)
{
if((*p>='A'&&*p<='Z')||(*p>='a'&&*p<='z'))
cout[0]++;
else if(*p==' ')
cout[1]++;
else if(*p>='0'&&*p<='9')
cout[2]++;
else
cout[3]++;
p++;
}
printf("\nletter=%d,blank=%d,number=%d,other=%d\n",cout[0],cout[1],cout[2],cout[3]);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-03-13
以下是使用 C++ 编写的程序,接受一个用户输入的一行字符,并统计其中大小写字母、空格、数字和其他字符的个数:

```cpp
#include <iostream>
using namespace std;

int main() {
char str[100];
int upper = 0, lower = 0, space = 0, digit = 0, other = 0;
cout << "请输入一行字符:" << endl;
cin.getline(str, 100);

char* p = str;
while (*p != '\0') {
if (isupper(*p)) {
upper++;
} else if (islower(*p)) {
lower++;
} else if (isspace(*p)) {
space++;
} else if (isdigit(*p)) {
digit++;
} else {
other++;
}
p++;
}

cout << "大小写字母个数:" << upper + lower << endl;
cout << "空格个数:" << space << endl;
cout << "数字个数:" << digit << endl;
cout << "其他字符个数:" << other << endl;

return 0;
}
```

在这个程序中,我们首先定义了一个字符数组str来存储用户输入的一行字符,以及五个整型变量来分别统计大小写字母、空格、数字和其他字符的个数。然后使用cin.getline()函数接受用户输入的一行字符,并将其存储到str数组中。

接下来,我们定义了一个指向字符数组的指针p,并使用while循环遍历整个字符串。在每次循环中,我们使用isupper()、islower()、isspace()、isdigit()等函数判断当前字符的类型,并根据其类型增加相应的计数器。最后输出各类字符的个数即可。

需要注意的是,在C++中,我们可以使用iostream库中的getline()函数来输入一行字符,而且需要包含头文件<ctype.h>来使用isupper()、islower()、isspace()、isdigit()等函数。
相似回答