题目描述
程序要求能够提取输入的字符串中的数字,将数字累加,得到数字之和,如输入的字符串为"abc76wet23er1.",应该提取数字76,23,1,求和后,即76+23+1=100。
输入格式:
输入一个字符串,字符串长度不超过100.
输出格式:
输出字符串中的数字之和
输入样例1:
在这里给出一组输入。例如:
abc76wet23er1.
输出样例1:
在这里给出相应的输出。例如:
100
输入样例2:
在这里给出一组输入。例如:
wwq100rty23fg45k
输出样例2:
在这里给出相应的输出。例如:
168
代码:
#include <stdio.h>
#include <ctype.h>int main() {char str[101]; // 定义字符串数组,最多存储 100 个字符 + 1 个结束符 '\0'scanf("%s", str); // 输入字符串int sum = 0; // 用于存储数字之和int num = 0; // 用于存储当前提取的数字int i = 0; // 字符串索引// 遍历字符串while (str[i] != '\0') {if (isdigit(str[i])) { // 如果当前字符是数字num = num * 10 + (str[i] - '0'); // 将字符转换为数字并累加到 num} else { // 如果当前字符不是数字sum += num; // 将当前提取的数字累加到 sumnum = 0; // 重置 num}i++; // 移动到下一个字符}sum += num; // 处理字符串末尾的数字printf("%d", sum); // 输出结果return 0;
}
补充知识:
#include <ctype.h>
是 C 语言中的一个预处理指令,用于包含 C 标准库中的字符处理函数。ctype.h
头文件中定义了一系列用于字符分类和处理的函数,这些函数可以判断字符的类型(如是否为数字、字母、空格等),或者对字符进行转换(如大小写转换)。
ctype.h
中的常用函数
以下是 ctype.h
中一些常用的函数及其作用:
1. 字符分类函数
这些函数用于判断字符是否属于某一类别,返回值为 int
类型(通常用 0
表示假,非 0
表示真)。
函数名 | 功能描述 |
---|---|
isalnum(int c) | 判断字符是否是字母或数字(a-z , A-Z , 0-9 )。 |
isalpha(int c) | 判断字符是否是字母(a-z , A-Z )。 |
isdigit(int c) | 判断字符是否是数字(0-9 )。 |
islower(int c) | 判断字符是否是小写字母(a-z )。 |
isupper(int c) | 判断字符是否是大写字母(A-Z )。 |
isspace(int c) | 判断字符是否是空白字符(空格、制表符、换行符等)。 |
isprint(int c) | 判断字符是否是可打印字符(包括空格)。 |
ispunct(int c) | 判断字符是否是标点符号(非字母、数字、空格)。 |
2. 字符转换函数
这些函数用于对字符进行转换。
函数名 | 功能描述 |
---|---|
tolower(int c) | 将字符转换为小写字母(如果是大写字母)。 |
toupper(int c) | 将字符转换为大写字母(如果是小写字母)。 |