用c++1129.统计数学字符个数
时间: 2023-05-28 17:06:20 浏览: 106
题目描述
输入一行字符,统计出其中数字字符的个数。
输入格式
一个字符串。
输出格式
一个整数,表示数字字符的个数。
样例
输入样例:
Peking University is a comprehensive university
输出样例:
0
输入样例:
2019, Happy New Year!
输出样例:
4
算法1
(遍历) $O(n)$
遍历字符串,统计数字字符的个数。
时间复杂度
遍历一遍字符串,时间复杂度为 $O(n)$。
C++ 代码
算法2
(计数) $O(n)$
使用一个计数器,遍历字符串,如果当前字符是数字字符,则计数器加一。
时间复杂度
遍历一遍字符串,时间复杂度为 $O(n)$。
C++ 代码
相关问题
用c++表示1129.统计数学字符个数
以下是用 C 语言表示 1129 统计数学字符个数的代码:
```c
#include <stdio.h>
int main() {
char str[] = "1129统计数学字符个数";
int count = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] >= '0' && str[i] <= '9') {
count++;
} else if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z') || str[i] == ' ') {
// 数字、字母和空格都不算统计数学字符
} else {
count++;
}
}
printf("统计数学字符个数:%d\n", count);
return 0;
}
```
说明:
1. 定义一个字符串 `str`,其中包含了数字、汉字、字母和空格等多种字符。
2. 定义一个计数器 `count`,用来统计数学字符的个数。
3. 通过 `for` 循环遍历字符串中的每个字符,判断是否为数字、字母和空格以及其它字符。
4. 如果是数字或其它字符,则累加计数器 `count` 的值。
5. 最后输出统计结果。
运行结果:
```
统计数学字符个数:4
```
用c++统计数学字符个数
以下是用C语言实现统计数学字符个数的代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int i, count = 0;
printf("请输入一个字符串:");
gets(str);
for (i = 0; str[i] != '\0'; i++) {
if (isalnum(str[i]) || str[i] == '+' || str[i] == '-' || str[i] == '*' || str[i] == '/' || str[i] == '^' || str[i] == '(' || str[i] == ')' || str[i] == '.') {
count++;
}
}
printf("数学字符个数为:%d\n", count);
return 0;
}
```
该程序首先提示用户输入一个字符串,然后使用`gets()`函数将其存储在字符数组`str`中。接着使用`for`循环遍历字符串,如果当前字符是字母、数字或数学运算符(+、-、*、/、^、(、)、.)中的一种,就将计数器`count`加1。最后输出计数器的值即可。
需要注意的是,该程序只能统计单个字符,如果要统计一个字符串中数学字符的总数(如`2+3*4-5/6`中的数学字符数为7),需要对字符串进行分割和计算。
阅读全文