c语言字符串转long long int
时间: 2023-11-28 21:04:37 浏览: 149
在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语言字符串怎么转换为long类型
可以使用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语言 字符串转整形
在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);
```
阅读全文