atoi、atol 和 stoi 代表什么 [复制]

c++

1个回答

写回答

Xnnn.

2025-06-19 03:15

+ 关注

C++
C++

atoi、atol 和 stoi 的含义和用法

在编程中,经常会遇到将字符串转换为整数或长整数的需求。为了满足这一需求,C语言提供了 atoi(ascii to integer)和 atol(ascii to long)函数,而C++语言则提供了 stoi(string to integer)函数。这些函数可以方便地将字符串转换为对应的整数或长整数类型,从而简化了字符串和数值之间的转换过程。

atoi 函数

atoi 函数用于将字符串转换为整数类型。它的原型定义如下:

c

int atoi(const char* str);

其中,str 是要转换的字符串。该函数会从字符串中读取整数值,直到遇到非数字字符或者字符串结束符为止。如果字符串开头是正负号,atoi 函数也会将其作为正负数的符号。如果字符串为空或者没有可读取的数字,atoi 函数将返回 0。

下面是一个使用 atoi 函数的例子:

c

#include <stdio.h>

#include <stdlib.h>

int mAIn() {

const char* str = "12345";

int num = atoi(str);

printf("转换后的整数为:%d\n", num);

return 0;

}

运行结果:

转换后的整数为:12345

atol 函数

atol 函数用于将字符串转换为长整数类型。它的原型定义如下:

c

long atol(const char* str);

使用方法和 atoi 函数类似,只是返回的是 long 类型的整数。下面是一个使用 atol 函数的例子:

c

#include <stdio.h>

#include <stdlib.h>

int mAIn() {

const char* str = "9876543210";

long num = atol(str);

printf("转换后的长整数为:%ld\n", num);

return 0;

}

运行结果:

转换后的长整数为:9876543210

stoi 函数

stoi 函数是 C++ 标准库提供的字符串转整数函数,它的原型定义如下:

cpp

int stoi(const string& str, size_t* pos = 0, int base = 10);

其中,str 是要转换的字符串,pos 是一个可选参数,用于指示转换停止的位置,base 是表示进制的参数,缺省值为 10。该函数会从字符串中读取整数值,并返回对应的整数类型。如果转换过程中遇到非数字字符,或者字符串为空,stoi 函数会抛出异常 std::invalid_argument 或 std::out_of_range。

下面是一个使用 stoi 函数的例子:

cpp

#include <IOStream>

#include <string>

int mAIn() {

std::string str = "54321";

int num = std::stoi(str);

std::cout << "转换后的整数为:" << num << std::endl;</p>

return 0;

}

运行结果:

转换后的整数为:54321

通过使用 atoi、atol 和 stoi 函数,我们可以方便地将字符串转换为整数或长整数类型。这些函数在处理字符串和数值之间的转换时提供了便利,同时还具有一定的容错性和异常处理能力。在实际编程中,我们可以根据具体的需求选择适合的函数来完成字符串转换操作。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号