优秀的编程知识分享平台

网站首页 > 技术文章 正文

C语言中,字符串如何优雅的转换为`long long`类型

nanyue 2024-08-01 22:47:27 技术文章 8 ℃

在 C 语言中,可以使用 strtoll() 函数将字符串转换为 long long 类型。

strtoll() 函数的原型如下:

long long int strtoll(const char* str, char** endptr, int base);

str 是需要转换的字符串;

endptr 是一个指向字符指针的指针,用于返回转换过程中第一个无法转换的字符的地址。如果整个字符串都可以转换,则 endptr 返回指向字符串末尾的指针;

base 是转换的进制数。可以设置为 0,表示自动根据字符串的前缀来判断进制数(0x 表示 16 进制,0 表示 8 进制,否则为 10 进制)。

下面是一个将字符串转换为 long long 类型的例子:

#include <stdio.h>

#include <stdlib.h>

int main() {

char str[] = "1234567890123456789";

char* endptr;

long long num = strtoll(str, &endptr, 10);

if (*endptr == '\0') {

printf("%lld\n", num);

} else {

printf("Cannot convert %s to a long long integer.\n", str);

}

return 0;

}

在上面的例子中,我们将字符串 "1234567890123456789" 转换为 long long 类型的整数。如果转换成功,我们将结果打印出来;否则打印出错误信息。

注意,我们使用第二个参数 endptr 来检查转换是否成功。如果 endptr 指向字符串末尾,说明整个字符串都被转换成了整数。否则说明转换过程中出现了无法转换的字符。

除了 strtoll() 函数之外,还有一些其他函数可以将字符串转换为整数类型,例如 atoi() 函数。不过需要注意的是,atoi() 函数只能将字符串转换为 int 类型的整数,无法处理超出 int 范围的大整数,而 long long 类型的整数通常能够处理更大的整数值。

atoi() 函数的原型如下:

int atoi(const char *str);

该函数将字符串转换为一个整数,如果字符串无法转换成整数,则返回 0。

下面是一个使用 atoi() 函数将字符串转换为 long long 类型的整数的例子:

#include <stdio.h>

#include <stdlib.h>

int main() {

char str[] = "1234567890123456789";

long long num = atoll(str);

printf("%lld\n", num);

return 0;

}

在上面的例子中,我们将字符串 "1234567890123456789" 使用 atoll() 函数转换为 long long 类型的整数。注意,atoll() 函数与 atoi() 函数类似,只不过返回值类型是 long long 类型的整数。

Tags:

最近发表
标签列表