用c语言,输入字符串,将字符串中的第一个数值转换成十进制整数,遇到空格数值字符认为结束
时间: 2024-12-16 12:14:01 浏览: 8
在C语言中,你可以通过遍历输入的字符串,并逐个字符处理来实现这个功能。这里是一个简单的示例程序,它会找到并解析字符串中的第一个连续数字部分,将其转换为十进制整数:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int num = 0;
bool is_number = false;
// 输入字符串
printf("请输入字符串: ");
fgets(str, sizeof(str), stdin);
// 跳过前导空格
while (isspace(str[0])) {
str++;
}
// 遍历字符串,如果遇到数字字符则转换
for (int i = 0; str[i] != '\0'; i++) {
if (isdigit(str[i])) {
num = num * 10 + (str[i] - '0'); // 将当前数字字符添加到num上
is_number = true; // 标记已找到数字
} else if (is_number) { // 当找到非数字字符且之前有数字时停止
break;
}
}
// 如果找到了数字,打印结果;否则提示未找到
if (is_number) {
printf("第一个数值转换后的十进制整数是:%d\n", num);
} else {
printf("未找到有效的数值。\n");
}
return 0;
}
```
在这个程序中,`isdigit()`函数用于检查字符是否是数字,`str[i] - '0'`用于从ASCII码值转换回对应的数字。当遇到非数字字符时,程序会停止解析并退出。
阅读全文