c语言4、输入一个不大于50个字符的字符串,可以输入数字和非数字字符。统计其共有多少个整数,其中连续的数字作为一个整数,不连续的整数作为一个单独的整数。要求输出统计到的数值个数及转换后的数值
时间: 2024-03-25 07:40:23 浏览: 10
好的,我来解答你的问题。
以下是 C 语言的代码,可以实现你的需求:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[51]; // 用于存储输入的字符串
int cnt = 0; // 记录整数个数
int num = 0; // 用于存储连续数字组成的整数
int flag = 0; // 用于标记是否正在处理数字
printf("请输入一个不大于50个字符的字符串:");
scanf("%s", str);
for (int i = 0; str[i] != '\0'; i++) {
if (isdigit(str[i])) { // 如果当前字符是数字
if (!flag) { // 如果还未开始处理数字,标记为处理数字
flag = 1;
cnt++; // 整数个数加一
}
num = num * 10 + (str[i] - '0'); // 将当前数字加入已有数字的后面
} else { // 如果当前字符不是数字
if (flag) { // 如果正在处理数字,输出并重置 num
printf("整数%d转换后的数值为%d\n", cnt, num);
num = 0;
flag = 0;
}
}
}
if (flag) { // 如果最后一个字符是数字,输出并重置 num
printf("整数%d转换后的数值为%d\n", cnt, num);
}
printf("共有%d个整数\n", cnt);
return 0;
}
```
程序运行时,会要求你输入一个不大于 50 个字符的字符串,然后会统计其中的整数个数,并将每个整数转换为数值输出。最后输出统计到的整数个数。
注意,以上代码只是一个简单的示例,可能还需要根据具体需求进行改进。