c语言 将字符串中的第一个数值转换成十进制整数,遇到空格数值字符认为结束
时间: 2024-12-16 20:14:17 浏览: 5
在 C 语言中,你可以使用标准库函数 `sscanf` 或者自己编写循环遍历来实现这个功能。这里是一个简单的示例,假设输入的字符串是以空格分隔的数字和非数字字符:
```c
#include <stdio.h>
#include <ctype.h>
int convert_to_decimal(const char *str) {
int num = 0;
int sign = 1; // 表示正数,默认不带前缀负号
bool found_number = false;
for (const char *ptr = str; *ptr && !isspace(*ptr); ptr++) { // 遇到空格则停止
if (isdigit(*ptr)) {
num = num * 10 + (*ptr - '0'); // 加上当前数字位
found_number = true;
} else if (*ptr == '-') { // 检查负号
if (found_number) {
sign = -1; // 如果之前有数字,表示负数
}
} else if (!found_number) { // 如果还没有找到数字,忽略特殊字符
continue;
} else {
break; // 找到非数字字符,退出循环
}
}
return num * sign;
}
// 示例
int main() {
const char *input = "123 45 678 space"; // 输入字符串
int converted_num = convert_to_decimal(input);
printf("转换后的十进制数: %d\n", converted_num);
return 0;
}
```
在这个例子中,`convert_to_decimal` 函数会返回输入字符串的第一个连续数字(包括正负号),遇到空格或其他非数字字符就停止。
阅读全文