.输入一个字符串,中间夹杂着一些数字,请把数字们提取出来,并求和,例如: 输入字符串: aabcd12qqq150xxx4zzzzz11 你应该输出 12+150+4+11的结果。(c语言)
时间: 2024-12-22 19:22:20 浏览: 4
在C语言中,你可以通过遍历输入字符串并检测字符是否为数字来实现这个功能。可以使用`isdigit()`函数检查每个字符,如果是数字则转换成整数并累加。下面是一个简单的示例:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main() {
char input[] = "aabcd12qqq150xxx4zzzzz11";
int sum = 0;
int start = 0; // 存储数字开始的位置
for (int i = 0; input[i]; i++) { // 遍历整个字符串
if (isdigit(input[i])) { // 如果是数字字符
if (start == 0) { // 如果还未找到第一个数字的开始位置
start = i; // 记录开始位置
}
else { // 否则累加当前字符到sum
sum += input[i] - '0'; // 因为'0'对应的ASCII值就是0,所以减去'0'得到实际数值
}
} else if (input[i] == '\0') { // 如果遇到字符串结束或非数字字符
if (start != 0) { // 如果有数字存在
sum += atoi(&input[start]); // 将连续的数字部分整体转换成整数并累加
start = 0; // 重置开始位置
}
}
}
if (start != 0) { // 检查是否有未处理的最后一个数字
sum += atoi(&input[start]);
}
printf("总和结果: %d\n", sum);
return 0;
}
```
阅读全文