用c语言写出这个程序
时间: 2023-12-20 11:16:01 浏览: 24
好的,以下是用 C 语言实现该功能的代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char s[81];
fgets(s, 81, stdin); // 读取一行字符串
int len = strlen(s);
if (s[len - 1] == '\n')
{
s[len - 1] = '\0'; // 去掉换行符
len--;
}
int sum = 0, num = 0;
int hasNum = 0; // 是否存在数字
for (int i = 0; i < len; i++)
{
if (s[i] >= '0' && s[i] <= '9')
{
num = num * 10 + (s[i] - '0'); // 将字符转换为数字
hasNum = 1;
}
else
{
if (hasNum)
{
printf("%d ", num); // 输出数字
sum += num; // 求和
num = 0;
hasNum = 0;
}
}
}
if (hasNum)
{
printf("%d ", num); // 输出最后一个数字
sum += num; // 求和
}
if (sum == 0)
{
printf("NO"); // 没有数字
}
else
{
printf("\n%d", sum); // 输出和值
}
return 0;
}
```
输入示例:
```
1 0022 8weh**67$$
```
输出示例:
```
1 22 8 67
98
```