c语言字符串转int类型(图示c语言字符串怎么转换int)

huafeng1103 好资讯c语言字符串转int类型(图示c语言字符串怎么转换int)已关闭评论1字数 756阅读模式

首先提出解决方案:

阿托伊斯特罗斯托

这几个有什么不同呢?下面测试对比。

C语言风格函数

atoi与strtol对比:

字符串str =16s ;inta = atoi(str.c_str());intb = strtol(str.c_str(),nullptr,10);

输出:

atoi的结果为:16strtol的结果为:16

这两个函数都是从字符串开始寻找数字或正负号或小数点,遇到非法字符终止。

所以到上述s字符就不输出了,提前结束,依次当你的字符串不是数字的时候,或者小数点等非数字,不会报异常!直接输出0。

例如:

字符串str = asdsa ;inta = atoi(str.c_str());intb = strtol(str.c_str(),nullptr,10);

输出:

00

strtol标度与atoi来说,支持多种二进制转换,例如8二进制等

例如:

intb = strtol(str.c_str(),nullptr,8);

C ++风格

在C ++中可以使用stoi来转int,这个函数引用于前两个一个最大特点是:异常!

我们知道C ++引用于C语言多了异常,这也是这个函数在C ++中具有的最显著功能。

例如:

字符串str1 = asq, ;// int c = stoi(str1); //报异常stringstr2 =12312;intc = stoi(str2);// okcout<< c <<endl;

异常如下:

terminatecalled after throwing an instance ofstd::invalid_argumentwhat(): stoi

自定义

如下:

intstringToInt(conststring&s){intv; 串流ss; ss << s; ss >> v; 返回 v; }intmain(){inti = stringToInt(2.3);cout<< i <<endl; }

huafeng1103
  • 本文由 发表于 2023年4月3日 18:48:24
  • 转载请务必保留本文链接:http://www.diujiu.com/zhixun/3703.html