Linux 下 C++如何将string 转为 int

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 下 C++如何将string 转为 int相关的知识,希望对你有一定的参考价值。

RT:例子:string str = "asdfasdgsg";
谢谢!
这是为了RSA加密用的……

用atoi函数,例如:

string str = "asdfasdgsg";

int i = atoi(str.c_str());

转换后,i结果为0

可以用man atoi查看相关库函数,如:

追问

为零怎么办?

追答

字符串里面没有数字,转换出来就是零啊!

追问

我RSA加密,要把文本转为数字啊!

追答

我猜你要的不是把"123"转成整形的123吧,而是对应的二进制流,比如:
abcdef123456 ==> 0xAB CD EF 12 34 56这样吧?

追问

是的,可以将asdfasfasdf等转为二进制,再用二进制来操作,请问怎么转?谢谢

追答typedef unsigned char       BYTE;

unsigned char z_H2C(char c)

    if (c>='a' && c<='f')
        return c-'a'+10;
    if (c>='A' && c<='F')
        return c-'A'+10;
    if (c>='0' && c<='9')
        return c-'0';
    return 0;


BYTE* Str2BIN(const char* sStr, BYTE * bBIN,int nBINLen)

    memset(bBIN,0,nBINLen);
    int nLen = strlen(sStr);
    for(int i=0;i<nLen;i+=2)
    
        *(bBIN+i/2) = z_H2C(sStr[i])*16+z_H2C(sStr[i+1]);
    
    return bBIN;
 

 //使用方法 
 char *pText = "abcd1234";
 int iLen            = strlen(pText) / 2 ;
 BYTE ucOut[50]    =  0;
 Str2BIN(pText, ucOut, iLen);

 需要注意的是,源串中只能是16进制的数字,字母只能是a~f

参考技术A 将string转化为int

#include <iostream>
#include<sstream>
#include<string>

using namespace std;

int main()

string str="110";
istringstream istr(str);
int i=0;
istr>>i;
cout<<i<<endl;
cout << "Hello world!" << endl;
return 0;
追问

好像string str = "dfsdsafds"不行吧/?

参考技术B #include <iostream>

using namespace std;

int main ( )



string a="12341234";

int b=atoi(a.data());

cout << b;

 return 0;

追问

linux下好像不行啊?我转换后为0 当然是第"dsaifsafsdaf"这样的字符串,数字不用

参考技术C 看错了 ,以为是转char*追问

e额,有什么办法么?

参考技术D ctoi之类的函数

c++ 如何将string 转成 enum 类型,enum 转成 string类型,

试过enum(string)强转编译不过

参考技术A 枚举类型如下:
public enum ConcertCode

BEIJING,
SHANGHAI,
GUANGZHOU
如果要将比如“beijing”字符串转换为ConcertCode.BEIJING的话,可以通过如下方法:
ConcertCode c = (ConcertCode)Enum.Parse(typeof(ConcertCode), 字符串的变量, true)

以上是关于Linux 下 C++如何将string 转为 int的主要内容,如果未能解决你的问题,请参考以下文章

c++ 如何将string 转成 enum 类型,enum 转成 string类型,

C++中,将一整形数字拆成一个一个的数字

c++ 如何把一个int转为char*

C++,如何将char型数组转换为string类型数组。

c++ int转化为string 类型

将对象转换为字符串(效率)