字符串转换为十进制数C语言
时间: 2024-12-20 10:12:57 浏览: 10
在C语言中,将字符串转换为十进制整数通常通过遍历字符串并逐字符累加乘以相应的权值来实现,这个过程也被称为字符串解析。这里有一个基本的例子,利用`atoi()`函数或者手动实现算法:
```c
#include <stdio.h>
#include <stdlib.h>
int str_to_int(char* str) {
int num = 0;
int sign = 1; // 表示正负,初始为正
if (*str == '-') { // 如果第一个字符是负号
sign = -1;
str++; // 跳过负号
}
while (*str != '\0') { // 遍历字符串直到遇到结束符
if (*str >= '0' && *str <= '9') {
num = num * 10 + (*str - '0'); // 累加数字
} else {
break; // 非数字字符直接跳出循环
}
str++; // 移动指针到下一个字符
}
return num * sign; // 返回结果,加上符号
}
int main() {
char str[] = "12345";
int decimal_num = str_to_int(str);
printf("String %s converted to decimal is %d\n", str, decimal_num);
return 0;
}
```
在这个例子中,`str_to_int()`函数会处理以"+"或"-"开头的字符串,并返回对应的十进制数值。
阅读全文