C语言 字符串与整形相互转换
时间: 2023-09-04 20:11:43 浏览: 174
C语言中可以使用以下函数实现字符串与整形之间的相互转换:
1. atoi:将字符串转换为整型
```
int atoi(const char *str);
```
2. atol:将字符串转换为长整型
```
long int atol(const char *str);
```
3. itoa:将整型转换为字符串
```
char *itoa(int value, char *str, int base);
```
其中,第一个参数为要转换的整型数值,第二个参数为存储转换后字符串的缓冲区,第三个参数为进制数(可以是2、8、10、16等)。注意,itoa函数不是标准C语言库函数,不同的编译器可能会有所不同。
示例代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "12345";
int num = atoi(str);
printf("字符串转整型:%d\n", num);
long long_num = atol(str);
printf("字符串转长整型:%ld\n", long_num);
char buffer[10];
itoa(num, buffer, 10);
printf("整型转字符串:%s\n", buffer);
return 0;
}
```
输出结果为:
```
字符串转整型:12345
字符串转长整型:12345
整型转字符串:12345
```
相关问题
C语言 字符串转整形
在C语言中,将字符串转换成整数(通常是指十进制整数)可以使用标准库提供的函数`atoi`, `strtol`, 或者更现代一些的` strtol_s` 和 ` atoi_s` (对于支持宽字符的编译器)。以下是几种常见的方法:
1. **atoi() 函数**:
```c
#include <stdlib.h>
int num = atoi("12345"); // 将字符串"12345"转换为整数
```
注意:`atoi`只能处理非负整数,如果字符串包含非数字字符或者数字太大超出了`int`范围,则结果可能是未定义的。
2. **strtol() 函数**:
```c
#include <string.h>
char str[] = "12345";
long int num = strtol(str, NULL, 10); // 第三个参数指定基数,这里是10表示十进制
```
3. **strtol_s() 和 atoi_s() 函数(宽字符版本)**:
如果使用宽字符(wchar_t),可以使用这些版本的函数。例如:
```c
#include <stdio.h>
wchar_t* str_wide = L"12345";
int32_t num_int32 = _wtoi_s(str_wide);
```
C语言字符串转整形函数
C语言中用于将字符串转换为整型数的函数是atoi()。该函数的原型是int atoi(const char *nptr) 。它接受一个字符串作为参数,并在第一个非空格字符为数字或正负号时开始类型转换。当遇到非数字字符时,转换停止并返回整型数。如果字符串不包含数字,则返回零。
以下是一个使用atoi()函数的示例程序:
#include <stdlib.h>
#include <stdio.h>
int main(void) {
float n;
char *str = "12345.67";
n = atoi(str);
printf("string = %s integer = %f\n", str, n);
return 0;
}
该程序输出为:string = 12345.67 integer = 12345.000000 。
另外,C语言还提供了atof()函数用于将字符串转换为双精度浮点数。该函数的原型是double atof(const char *str) 。它与atoi()函数类似,不同之处在于它返回双精度浮点数。
希望以上信息能够解答您的问题。
阅读全文