程序要求能够提取输入的字符串中的数字,将数字累加,得到数字之和,如输入的字符串为"abc76wet23er1.",应该提取数字76,23,1,求和后,即76+23+1=100,要求输入的字符串最后一个字符不能为数字字符。用c语言编写
时间: 2024-05-12 08:17:52 浏览: 68
好的,我可以帮你编写一个能够提取字符串中数字并累加的程序。以下是代码:
```c
#include <stdio.h>
int main() {
char str[100];
int len, i, sum = 0, num = 0;
printf("请输入字符串:");
scanf("%s", str);
len = strlen(str); // 获取字符串长度
if (isdigit(str[len - 1])) {
printf("输入的字符串最后一个字符不能是数字字符!\n");
return 0;
}
for (i = 0; i < len; i++) {
if (isdigit(str[i])) {
num = num * 10 + (str[i] - '0'); // 将字符转换为数字
} else {
sum += num; // 累加数字
num = 0; // 清零
}
}
printf("数字之和为:%d\n", sum);
return 0;
}
```
当输入字符串为"abc76wet23er1."时,程序将输出:
```
请输入字符串:abc76wet23er1.
数字之和为:100
```
希望能够帮到你!
相关问题
程序要求能够提取输入的字符串中的数字,将数字累加,得到数字之和,如输入的字符串为"abc76wet23er1.",应该提取数字76,23,1,求和后,即76+23+1=100,要求输入的字符串最后一个字符不能为数字字符。
好的,这是一个算法问题,我可以直接回答。这个问题可以通过正则表达式来实现。首先,从输入的字符串中提取出所有的数字,然后将这些数字进行累加求和即可。以下是一个可以实现这个功能的 Python 代码示例:
import re
string = "abc76wet23er1."
# 用正则表达式提取数字
numbers = re.findall("[0-9]+", string)
# 将数字进行累加求和
result = sum(map(int, numbers))
print(result) # 输出结果为100
用c语言实现程序要求能够提取输入的字符串中的数字,将数字累加,得到数字之和,如输入的字符串为"abc76wet23er1.",应该提取数字76,23,1,求和后,即76+23+1=100,要求输入的字符串最后一个字符不能为数字字符。
```c
#include <stdio.h>
int main() {
char str[100];
int i, sum = 0;
printf("请输入一个字符串:");
scanf("%s", str);
if (str[strlen(str)-1] >= '0' && str[strlen(str)-1] <= '9') {
printf("输入的字符串最后一个字符不能为数字字符!\n");
return 0;
}
for (i = 0; str[i] != '\0'; i++) {
if (str[i] >= '0' && str[i] <= '9') {
int num = str[i] - '0';
while (str[i+1] >= '0' && str[i+1] <= '9') {
num = num * 10 + (str[i+1] - '0');
i++;
}
sum += num;
}
}
printf("数字之和为:%d\n", sum);
return 0;
}
```
阅读全文