C语言字符串转换成十进制数
时间: 2023-09-08 21:15:24 浏览: 231
C语言中可以使用函数`atoi()`将字符串转换成十进制数,例如:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "1234";
int num = atoi(str);
printf("%d\n", num);
return 0;
}
```
输出结果为:
```
1234
```
需要注意的是,`atoi()`函数只能将字符串转换成整型数,如果字符串中含有非数字字符,将返回0。如果需要转换成其他类型的数,可以使用`atof()`函数(转换成浮点型数)或`strtol()`函数(转换成长整型数)。
相关问题
C语言字符串转换成十进制数代码
以下是C语言中将字符串转换成十进制数的示例代码:
```c
#include <stdio.h>
#include <string.h>
#include <math.h>
int str_to_int(char *s) {
int n = strlen(s);
int res = 0;
for (int i = 0; i < n; i++) {
int num = s[n-i-1] - '0';
res += num * pow(10, i);
}
return res;
}
int main() {
char s[] = "123";
int num = str_to_int(s);
printf("%d\n", num);
return 0;
}
```
这个程序定义了一个函数 `str_to_int`,接受一个字符串作为参数,返回对应的十进制数。在 `main` 函数中,我们测试了这个函数的正确性,并将结果输出到屏幕上。注意,这个程序需要包含头文件 `stdio.h`、`string.h` 和 `math.h`。
C语言字符串转换成十进制数ASCLL
在C语言中,将字符串转换为十进制整数通常需要遍历字符串并逐位相加,这里我们可以使用标准库函数`atoi()`或手动编写循环处理。但是,如果你想通过ASCII码值来实现这个过程,需要注意的是ASCII码实际上包含了字符和一些特殊控制字符,其中字母、数字等对应特定的整数值。
例如,你可以这样做:
```c
#include <stdio.h>
#include <ctype.h>
int ascii_to_decimal(const char *str) {
int decimal = 0;
for (const char *c = str; isspace(*c); c++) {} // 跳过前导空格
while (*c != '\0') { // 遍历字符串,直到遇到结尾符
decimal *= 10; // 将当前的10倍于之前的值
if (isdigit(*c)) { // 如果是数字字符
decimal += *c - '0'; // 加上对应的ASCII码减去'0'后的值(即实际数字)
}
c++; // 移动到下一个字符
}
return decimal;
}
int main() {
const char* str = "123";
int decimal_value = ascii_to_decimal(str);
printf("ASCII字符串 '%s' 对应的十进制数为:%d\n", str, decimal_value);
return 0;
}
```
在这个例子中,我们假设输入的字符串仅包含有效的数字字符,如果包含其他非数字字符,你需要在`isdigit()`判断之外添加错误处理。
阅读全文