在c++设计一个子函数,统计任意一串字符中数字字符的个数,并在主函数中调用此函数
时间: 2024-05-13 11:16:49 浏览: 80
可以使用以下代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
// 统计数字字符的个数
int countDigits(string str) {
int count = 0;
for (int i = 0; i < str.length(); i++) {
if (isdigit(str[i])) {
count++;
}
}
return count;
}
int main() {
string str;
cout << "请输入一串字符:";
getline(cin, str);
int count = countDigits(str);
cout << "数字字符的个数为:" << count << endl;
return 0;
}
```
在上述代码中,`countDigits`函数接收一个字符串参数,使用`isdigit`函数判断每个字符是否是数字字符,如果是则计数器加1。在主函数中,使用`getline`函数获取用户输入的一串字符,调用`countDigits`函数统计其中数字字符的个数,并输出结果。
相关问题
C++题目54:统计一个字符串 编写程序用于统计一个字符串中字母、数字、空格以及其它字符的个数。在主函数中输入字符串后,调用函数:void fun(char *p, int n),并输出统计结果。要求用指针实现。 【输入形式】 一个字符串(回车结束); 【输出形式】 字符串中字母、数字、空格以及其它字符的个数统计结果(输出数据之间用逗号分隔);
好的,这道题目可以使用指针来实现字符串的遍历,然后统计各个字符的个数。以下是代码实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
void fun(char *p, int n)
{
int letter = 0, digit = 0, space = 0, other = 0;
for(int i=0; i<n; i++)
{
if(*(p+i)>='a' && *(p+i)<='z' || *(p+i)>='A' && *(p+i)<='Z')
{
letter++;
}
else if(*(p+i)>='0' && *(p+i)<='9')
{
digit++;
}
else if(*(p+i)==' ')
{
space++;
}
else
{
other++;
}
}
cout << "字母个数:" << letter << ", 数字个数:" << digit
<< ", 空格个数:" << space << ", 其他字符个数:" << other << endl;
}
int main()
{
char str[100];
cout << "请输入一个字符串:" << endl;
cin.getline(str, 100);
int n = strlen(str);
fun(str, n);
return 0;
}
```
运行结果:
```
请输入一个字符串:
Hello World! 123
字母个数:10, 数字个数:3, 空格个数:2, 其他字符个数:1
```
C++编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。
好的,这是一个计算字符串中字母、数字、空格和其他字符个数的问题,属于技术问题。以下是代码实现:
```c
#include <stdio.h>
#include <ctype.h>
void count_chars(char *str);
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, 100, stdin);
count_chars(str);
return 0;
}
void count_chars(char *str) {
int letters = 0, digits = 0, spaces = 0, others = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i])) {
letters += 1;
} else if (isdigit(str[i])) {
digits += 1;
} else if (isspace(str[i])) {
spaces += 1;
} else {
others += 1;
}
}
printf("字母个数:%d\n", letters);
printf("数字个数:%d\n", digits);
printf("空格个数:%d\n", spaces);
printf("其他字符个数:%d\n", others);
}
```
输入一个字符串,使用 `fgets()` 函数获取字符串并保存在 `str` 数组中。然后调用 `count_chars()` 函数,遍历字符串中的每个字符,使用 `isalpha()` 函数判断字母、`isdigit()` 函数判断数字,`isspace()` 函数判断空格,其他字符即为不属于前面三种类型的字符。最后输出统计结果。
阅读全文