
C++
atoi、atol 和 stoi 的含义和用法
在编程中,经常会遇到将字符串转换为整数或长整数的需求。为了满足这一需求,C语言提供了 atoi(ascii to integer)和 atol(ascii to long)函数,而C++语言则提供了 stoi(string to integer)函数。这些函数可以方便地将字符串转换为对应的整数或长整数类型,从而简化了字符串和数值之间的转换过程。atoi 函数atoi 函数用于将字符串转换为整数类型。它的原型定义如下:cint 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;}运行结果:转换后的整数为:12345atol 函数atol 函数用于将字符串转换为长整数类型。它的原型定义如下:
clong 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;}运行结果:转换后的长整数为:9876543210stoi 函数stoi 函数是 C++ 标准库提供的字符串转整数函数,它的原型定义如下:
cppint 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 函数,我们可以方便地将字符串转换为整数或长整数类型。这些函数在处理字符串和数值之间的转换时提供了便利,同时还具有一定的容错性和异常处理能力。在实际编程中,我们可以根据具体的需求选择适合的函数来完成字符串转换操作。
Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号