用C语言写这道题。3.输入一个字符串(字符串长度不超过100),将字符串中的数字字符转换成数字,将数字累加,输出得到数字之和。例如:输入的字符串为"abc76wet23er1."应该提取数字7,6,2,3,1,求和后,即7+6+2+3+1=19,输出19。
时间: 2024-03-03 15:50:03 浏览: 104
好的,以下是用C语言实现的代码:
```c
#include <stdio.h>
int main() {
char str[101];
int sum = 0;
printf("请输入字符串:");
scanf("%s", str);
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] >= '0' && str[i] <= '9') {
sum += str[i] - '0';
}
}
printf("数字之和为:%d\n", sum);
return 0;
}
```
代码解释如下:
1. 定义一个字符数组 `str` 存储输入的字符串,长度为 `101`,其中 `100` 个字符用来存储字符串,最后一个字符用来存储字符串结束符 `\0`。
2. 定义一个整型变量 `sum`,用来累加数字字符的值。
3. 使用 `printf` 函数输出提示信息,使用 `scanf` 函数读取用户输入的字符串。
4. 使用 `for` 循环遍历字符串中的每个字符,当字符为数字字符时,将其转换为对应的数字,并将其累加到 `sum` 中。
5. 使用 `printf` 函数输出数字之和。
注意事项:
1. 由于输入的字符串长度不超过 `100`,所以字符数组的长度应该设置为 `101`。
2. 遍历字符串时,应该判断字符串是否已经结束,即当前字符是否为结束符 `\0`。
阅读全文