題目描述
程序要求能夠提取輸入的字符串中的數字,將數字累加,得到數字之和,如輸入的字符串為"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) | 將字符轉換為大寫字母(如果是小寫字母)。 |