C语言将用户输入的字符串中的所有数字提取出来

请教一下,C语言将用户输入的字符串中的所有数字提取出来
最新回答
宇宙藏进你

2025-03-31 04:44:41

在C语言中,提取用户输入的字符串中的所有数字可以通过遍历字符串并检查每个字符是否为数字来实现。这通常通过`isdigit()`函数完成,该函数定义在``头文件中,用于检查给定的字符是否为十进制数字('0'-'9')。

以下是一个简单的示例程序,该程序读取用户输入的字符串,然后遍历该字符串,使用`isdigit()`函数检查每个字符,如果是数字,则将其输出。

```c
#include
#include // 引入isdigit函数

int main() {
char str[100]; // 假设用户输入的字符串不超过99个字符
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin); // 使用fgets读取一行,包括空格

// 遍历字符串
for(int i = 0; str[i] != '\0'; i++) {
if(isdigit(str[i])) { // 检查当前字符是否为数字
printf("%c", str[i]); // 如果是,则输出该数字
}
}

return 0;
}
```

注意:由于使用了`fgets()`来读取输入,如果输入的字符串中包含换行符(`'\n'`),它也会被读取并存储在`str`中。然而,`isdigit()`函数不会将换行符视为数字,因此它不会被输出。此外,`fgets()`在读取到换行符或达到数组大小限制时会停止读取,这有助于防止缓冲区溢出。