c语言字符串怎么转换为long类型
时间: 2023-08-07 17:03:01 浏览: 51
可以使用C标准库函数`atol()`将字符串转换为long类型。
函数原型如下:
```c
long int atol(const char *str);
```
其中,`str`是需要转换的字符串,函数会返回转换后的long类型数据。
示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "12345";
long num = atol(str);
printf("%ld\n", num);
return 0;
}
```
输出结果为:
```
12345
```
相关问题
c语言字符串转long long int
在C语言中,可以使用`strtol()`函数将字符串转换为长整型数(long long int)。`strtol()`函数的原型为:`long long int strtoll(const char *str, char **endptr, int base)`。其中,`str`为要转换的字符串,`endptr`为第一个不能转换的字符的指针,`base`为字符串`str`所采用的进制。`strtol()`函数会将参数`str`字符串根据参数`base`来转换成长整型数(long long int)。参数`base`范围从2至36,或0。参数`base`代表`str`采用的进制方式,如`base`值为10则采用10进制,若`base`值为16则采用16进制等。`strtol()`函数会扫描参数`str`字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过`isspace()`函数来检测),直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('\0')结束转换,并将结果返回。
示例代码如下所示:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str[] = "123456789";
char *endptr;
long long int num = strtoll(str, &endptr, 10);
printf("%lld\n", num);
return 0;
}
```
c语言 字符串与整形相互转换
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
```