用c语言实现程序要求能够提取输入的字符串中的数字,将数字累加,得到数字之和,如输入的字符串为"abc76wet23er1.",应该提取数字76,23,1,求和后,即76+23+1=100,要求输入的字符串最后一个字符不能为数字字符。
时间: 2024-05-05 22:16:37 浏览: 56
```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;
}
```
相关问题
程序要求能够提取输入的字符串中的数字,将数字累加,得到数字之和,如输入的字符串为"abc76wet23er1.",应该提取数字76,23,1,求和后,即76+23+1=100,要求输入的字符串最后一个字符不能为数字字符。用c语言编写
好的,我可以帮你编写一个能够提取字符串中数字并累加的程序。以下是代码:
```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
```
希望能够帮到你!
用c语言写输入字符串,将字符串中的数字字符转化成数字,将数字累加,输出得到数字之和
好的,以下是 C 语言的实现代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, sum = 0;
printf("请输入字符串:");
scanf("%s", str);
for (i = 0; i < strlen(str); i++) {
// 判断当前字符是否为数字字符
if (str[i] >= '0' && str[i] <= '9') {
// 将数字字符转化成数字,累加到总和中
sum += str[i] - '0';
}
}
printf("得到数字之和为:%d\n", sum);
return 0;
}
```
例如,如果输入字符串为 `"Hello123World456"`,则输出结果为:
```
得到数字之和为:21
```
阅读全文