C语言题目:输入一个以回车结束的字符串 (少于80个字符),把字符串中的所有数字字符( ( '0 ' ~ '9 ' )转换为整数,去掉其他字符。例如,字符串"3a56bc"转换为整数后是356。
时间: 2023-11-22 07:56:37 浏览: 455
以下是C语言的代码实现:
```c
#include <stdio.h>
int main() {
char str[80];
int num = 0;
int i = 0;
printf("请输入字符串:");
scanf("%s", str);
while (str[i] != '\0') {
if (str[i] >= '0' && str[i] <= '9') {
num = num * 10 + str[i] - '0';
}
i++;
}
printf("转换后的整数为:%d\n", num);
return 0;
}
```
代码思路:
1. 定义一个字符数组 `str`,用于存储输入的字符串。
2. 定义一个整型变量 `num`,用于存储转换后的整数。
3. 使用 `scanf()` 函数读取输入的字符串。
4. 利用循环遍历字符串中的每一个字符,判断其是否为数字字符。
5. 如果是数字字符,则将其转换为整数并加入到 `num` 中。
6. 最终输出转换后的整数。
需要注意的是,上述代码没有对输入字符串的长度进行检查,如果输入的字符串超过了80个字符,则可能会导致程序出错。为了避免这种情况,可以使用 `fgets()` 函数来读取输入的字符串,并且指定最大字符数为79,如下所示:
```c
fgets(str, 80, stdin);
```
这样可以确保输入的字符串不会超过80个字符。
阅读全文