用c语言输入一个以回车结束的字符串(少于80个字符),将其中第一次出现的连续的数字符号(“0”~“9”)转换为整数,遇到非数字字符停止。用while语句
时间: 2024-12-01 15:29:25 浏览: 58
在 C 语言中,你可以使用 `scanf` 函数配合 while 循环来实现这个功能。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <ctype.h> // 包含 isdigit 函数
int main() {
char input[81]; // 定义一个足够大的数组来存储输入字符串
int num = 0; // 存储转换后的整数值
int i = 0;
printf("请输入一个不超过80个字符的字符串:");
fgets(input, sizeof(input), stdin); // 使用 fgets 获取用户输入,包括回车符
// 使用 while 循环遍历字符串,直到遇到非数字字符或字符串结束
while (i < strlen(input) && isdigit(input[i])) {
num = num * 10 + (input[i] - '0'); // 将当前字符转换成整数并累加到 num 上
i++; // 移动指针到下一个字符
}
// 删除字符串末尾的换行符
if (input[strlen(input)-1] == '\n') {
input[strlen(input) - 1] = '\0';
}
printf("转换后的整数是:%d\n", num);
return 0;
}
```
在这个程序中,我们首先读取用户的输入,然后使用 `isdigit` 函数检查字符是否为数字。如果是数字,我们就将其添加到 `num` 中。一旦遇到非数字字符或到达字符串结尾,循环就会终止。
阅读全文