题目描述
对于给定的一个字符串,统计其中数字字符出现的次数。输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。输出对于每个测试实例,输出该串中数值的个数,每个输出占一行。
测试说明
样例输入:
2
asdfasdf123123asdf
asdfasdf111111111asdfasdfasdf
样例输出:
6
9
源代码
#include <stdio.h>
#include <string.h>
int countNumbers(char* str) {
int count = 0;
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (str[i] >= '0' && str[i] <= '9') { // 判断字符是否为数字
count++;
}
}
return count;
}
int main() {
int n;
scanf("%d", &n);
getchar(); // 读取换行符
for (int i = 0; i < n; i++) {
char str[100];
fgets(str, 100, stdin); // 读取字符串
int numCount = countNumbers(str);
printf("%d\n", numCount);
}
return 0;
}
在这个程序中,我们首先定义了一个countNumbers
函数来统计字符串中数字字符的个数。函数接受一个字符串作为参数,使用strlen
函数获取字符串的长度。
然后,我们使用一个循环遍历字符串的每个字符,如果字符的ASCII值在 '0'
到 '9'
的范围内,说明它是一个数字字符,将计数器加一。
在main
函数中,我们首先读取一个整数n,表示测试实例的个数。然后使用一个循环,读取每个测试实例的字符串。
我们使用fgets
函数来读取字符串,而不是使用scanf
,这是因为fgets
可以读取包含空格的字符串,并且可以指定读取的最大长度(这里设定为100)。
接下来,我们调用countNumbers
函数统计字符串中数字字符的个数,并将结果打印出来。
最后,返回0表示程序正常结束。
注意:此程序假设输入的字符串不会超过100个字符。如果需要处理更长的字符串,可以相应地增加数组的大小。另外,该程序没有进行错误处理和边界检查。在实际应用中,可能需要添加额外的逻辑以确保程序的稳定性和正确性。
运行截图
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END