×

c string转int

c string转int(c怎么将string转换成int)

admin admin 发表于2023-01-01 00:53:47 浏览32 评论0

抢沙发发表评论

本文目录

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())
{
//错误发生
}