用c语言,输入字符串,将字符串中的第一个数值转换成十进制整数,遇到空格数值字符认为结束,例如“42 00”,输出42;“-29”,输出-29
时间: 2024-12-16 08:13:58 浏览: 7
在C语言中,你可以通过遍历字符串并逐个处理字符来实现这个功能。这里有一个简单的示例,它使用了`atoi()`函数,不过请注意,这个函数对于包含非数字字符的情况会停止,并返回遇到的第一个有效数字。如果字符串以负号开头,我们需要额外处理正负号。
```c
#include <stdio.h>
#include <stdlib.h>
int get_decimal_from_string(const char *str) {
int num = 0;
bool is_negative = false;
while (*str != '\0') { // 遍历字符串直到遇到'\0'
if (*str >= '0' && *str <= '9') { // 如果是数字字符
num = num * 10 + (*str - '0'); // 更新数字
} else if (*str == '-') { // 如果是负号
is_negative = true; // 标记为负数
str++; // 移动到下一个位置
} else { // 遇到空格或其他非数字字符,则退出循环
break;
}
str++; // 移动到下一个字符
}
return is_negative ? -num : num; // 根据是否是负数返回结果
}
int main() {
const char *input = "42 00";
printf("Output: %d\n", get_decimal_from_string(input)); // 输出: 42
input = "-29";
printf("Output: %d\n", get_decimal_from_string(input)); // 输出: -29
return 0;
}
```
阅读全文