本文目录
- c怎么将string转换成int
- C语言字符串转成INT型数组
- C++ 中如何把一个string 中的几串数字都转化成int
- c++中将string 转换成 int 的方法
- c++中string转换成int的运算规则
- 在c++中怎么将string型怎么和int型互相转换
- C++中怎么把字符串string型的数字转换成整型int型的数字
- c++中string类型如何转换成int类型
c怎么将string转换成int
首先感谢几位知乎老兄指教,这篇文章发过一次,题目为C++ atoi关键字,确实是自己错了,敬师不到,学艺不精,谢谢各位指教。因为工作需要,学起C++之所以在知乎发文章,只是想记录一下自己的学习笔记,给自己点儿结果反馈,促进学习。有些地方有待斟酌甚至错误,以免误人子弟,请各位多指教,即使是嘲笑和鄙视鄙人也很能接受,并且万分感谢!
作用
atoi()函数将数字格式的字符串转换为整数类型。例如,将字符串1253124127转换成数字1253124127。
注意
首要注意
atoi函数可以转化如下这种字符串 1fdafhdjfhkas
关于参数的注意事项
,atoi()函数的参数是要转换的字符串。该字符串的格式为
[空格][符号][数字]
其中,空格可以是键盘中的空格字符或者是Tab字符;符号可以是表示正数的“+”,也可以是表示负数的“-”;数字即为数字字符串。所以,atoi()函数参数可以是
+123
-456
需要注意的是,空格和“+”可以省略。所以,atoi()函数参数还可以是
123
-456
关于返回值的注意事项
如果atoi()函数转换成功,则该函数的返回值是转换后的整型。如果atoi()函数转换失败,例如要转换的类型超过了int表示的范围,如果要转换的是正数,则返回INT_MAX(2147483647),如果要转换的是负数,则返回INT_MIN(-2147483648)。代码如下所示
调用方法
//该函数的格式为
int atoi(const char* str)
//其中,参数str是要转换的字符串,返回值是转换后的整数。
int main(){
const char* str1=“12493265713256“
const char* str2=“8fdafhdjfhkas“
int outNm=atoi(str1)
}
C语言字符串转成INT型数组
#include《stdio.h》
int main()
{
int i,a;
char s;
gets(s);
for(i=0;s[i];i++)
a[i]=s[i];
a[i]=0;
for(i=0;a[i];i++)
printf(“%d “,a[i]);
printf(“\n“);
getch();
return 0;
}
如果是数字串,则有以下的转换:
#include《stdio.h》
int main()
{
int i,a;
char s;
scanf(“%s“,&s);
for(i=0;s[i];i++)
a[i]=s[i]-’0’;
a[i]=0;
for(i=0;a[i];i++)
printf(“%d “,a[i]);
printf(“\n“);
getch();
return 0;
}
C++ 中如何把一个string 中的几串数字都转化成int
#include《iostream》
#include《string.h》
#include《stdlib.h》
using namespace std;
int main()
{
string s=“123 222 555 333 666 77765“;
int k=0,j=0,b,x=0;
char a,t;
for(string::iterator iter = s.begin(); iter!=s.end(); iter++) //使用迭代器
t[x++]=*iter;//将string类中的字符串存入数组t中;
for(int i=0;i《strlen(t);i++)
{
if(t[i]!=’ ’)
a[k][j++]=t[i];//将数组t中的每个非空格的字符存入二维数组的每一行,
else//遇到空格换行
{
k++;
j=0;
}
}
for(int i=0;i《=k;i++)
b[i]=atoi(a[i]);//字符串转化为整数;函数atoi
for(int i=0;i《=k;i++)
printf(“%d\n“,b[i]);
}
c++中将string 转换成 int 的方法
如果不能使用atoi这样的现有函数,可以自己实现一个,代码大致如下:
# private static int TransToInt(string str)
# {
# char ch = str.ToCharArray();//转换成char型来计算
# int nArray = new int[str.Length];//定义一个int型数组
# int nReturn = 0; //定义返回的int型值
# const int ten = 10; //定义常量
# for (int i = 0; i 《 ch.Length; i++)
# {
# if (ch[i] - 48 《 0 || ch[i] - 48》9) //判断是否是可转换的int型
# {
# return -1;
# }
# else
# {
# nArray[i] = ch[i] - 48; //把字符转换成int
# for (int j = ch.Length - i - 1; j 》 0; j--)
# {
# nArray[i] *= ten;
# }
# nReturn += nArray[i];
# }
# }
# if (!nReturn.ToString().Equals(str))//如果数字超出int型范围
# {
# return -1;
# }
# return nReturn;
# }
c++中string转换成int的运算规则
字符串转int,只有满足数字格式的才可以转,比如“123”,“356”等这样的才可以转成int,16进制格式的也可以转。。。。非数字格式的不能转化,比如字符串“good”,这样的就不行,格式错误在转化时会失败,。。。。
你说的AA可以当做16进制转化成16*10+10=170存在int内。。。。现在已经没人用16位机了,你的+-3W早就过时了,只有16为单片机内还用这个,32位机,int的上限是+-2G,也就是+-20亿之内的数。。。。
在c++中怎么将string型怎么和int型互相转换
// string转int
string str=“12345“;
int b=atoi(str.c_str());
// int转string
int n = 65535;
char t;
string s;
sprintf(t, “%d“, n);
s = t;
基本思想就是将string 和char*还有int联系起来,char*是他们之间的桥梁。
C++中怎么把字符串string型的数字转换成整型int型的数字
int str2int( string str)
{
int i,len = str.size(),num = 0 ;
i = 0 ;
if (str[ 0 ] == ’ - ’ )
i = 1 ;
while (i 《 len)
{
num = num * 10 + ( int )(str[i] - ’ 0 ’ );
i ++ ;
}
if (str[ 0 ] == ’ - ’ )
num *= - 1 ;
return num;
}
string int2str( int num)
{
if (num == 0 )
return “ 0 “ ;
string str = ““ ;
int num_ = num 》 0 ? num : - 1 * num;
while (num_)
{
str = ( char )(num_ % 10 + 48 ) + str;
num_ /= 10 ;
}
if (num 《 0 )
str = “ - “ + str;
return str;
}
c++中string类型如何转换成int类型
c++中string到int的转换有两种方法:
1、 在C标准库里面,使用atoi:
#include 《cstdlib》
#include 《string》
std::string text = “152“;
int number = std::atoi( text.c_str() );
if (errno == ERANGE) //可能是std::errno
{
//number可能由于过大或过小而不能完全存储
}
else if (errno == ????)
//可能是EINVAL
{
//不能转换成一个数字
}
2、 在C++标准库里面,使用stringstream:(stringstream 可以用于各种数据类型之间的转换)
#include 《sstream》
#include 《string》
std::string text = “152“;
int number;
std::stringstream ss;
ss 《《 text;//可以是其他数据类型
ss 》》 number; //string -》 int
if (! ss.good())
{
//错误发生
}
ss 《《 number;// int-》string
string str = ss.str();
if (! ss.good())
{
//错误发生
}