用c语言从键盘输入一个字符串,长度不超过20,再将字符串中的数字部分按顺序输出。
时间: 2024-12-13 16:15:35 浏览: 20
S格式符——输出一个字符串-c语言 基础部分
在C语言中,你可以使用`scanf`函数从键盘读取字符串,然后遍历该字符串,检查每个字符是否为数字。可以借助`isdigit`函数来判断字符是否为数字,同时使用计数器来跟踪已处理的数字字符。以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char input[21]; // 定义一个20字节长的数组存储字符串
int index = 0; // 记录当前扫描到的位置
printf("请输入一个长度不超过20的字符串: ");
fgets(input, sizeof(input), stdin); // 使用fgets获取输入,包括换行符
// 移除末尾的换行符
if (input[strlen(input) - 1] == '\n') {
input[strlen(input) - 1] = '\0';
}
for (int i = 0; i < strlen(input); ++i) {
if (isdigit(input[i])) {
printf("%d", input[i] - '0'); // 将字符转换为整数并输出
++index; // 如果找到数字,跳过下一个位置
}
}
printf("\n");
--related question--
1. 在这个程序中为什么要移除末尾的换行符?
2. 如何优化此程序使其能处理负数和小数点?
3. 是否有更好的方法只打印连续的数字字符,如"123456"而不是"1 2 3 4 5 6"?
}
```
阅读全文