输入一个字符串,统计该字符串中有多少个整数。用C语言写
时间: 2024-12-23 15:24:40 浏览: 3
strcmp是C语言中的一个字符串比较函数
在C语言中,你可以编写一个简单的程序来统计输入字符串中的整数个数。这个任务可以使用字符处理和正则表达式的库,比如`<ctype.h>`和`<regex.h>`(如果可用的话,某些版本的C标准库并不包含后者)。下面是一个基本的示例,假设我们只关心非负整数:
```c
#include <stdio.h>
#include <ctype.h>
#include <regex.h>
int count_integers(char *str) {
regex_t pattern;
int count = 0;
char match[64]; // 预设较大的匹配区域
// 创建正则表达式模式匹配整数
regcomp(&pattern, "[0-9]+", REG_EXTENDED);
// 搜索并计数整数
while (regexec(&pattern, str, 1, match, 0) == 0) {
str += regnmatch(&pattern, str); // 移动到下一个整数位置
count++;
}
regfree(&pattern);
return count;
}
int main() {
char input[100];
printf("请输入一个字符串: ");
fgets(input, sizeof(input), stdin);
input[strcspn(input, "\n")] = '\0'; // 清除fgets产生的换行符
int integer_count = count_integers(input);
printf("字符串中有 %d 个整数。\n", integer_count);
return 0;
}
```
注意,此代码仅适用于非负整数,并且未考虑浮点数或其他特殊情况。实际应用中可能需要更复杂的正则表达式来处理更多种类的数值。
阅读全文