C++编程常用函数-字符串转整形、十进制转十六进制(持续更新遇到啥写啥)

整理了平时常用的几个函数

字符串转整形

string s;
int n;
n=atoi(s.c_str());

这样就把一个字符串转化为整形啦!注意c_str()后面的括号一定不能忘记,因为atoi函数的原型是

int atoi(const char *nptr);

而string的c_str()就是获取string的首地址的!

字符数字转整形

char a;
int n;
a='9';
n=a-'0';

十进制转化为十六进制

要想给地址赋一个确定的地址怎么办?肯定要输入地址了,地址怎么输入?我想的办法是整形转化为十六进制然后强制转化Char*获取地址字符数组(欢迎大家讨论),转化是利用itoa()函数,一个鲜明的例子如下:

    char str[10];//定义字符数组,itoa之后十六进制就是保存在这里面的
    cout<<"Please input a int:"<<endl;
    int n;
    cin>>n;
    //将整型数n按十进制转换为字符串并输出
    itoa(n,str,10);
    cout<<"str="<<str<<endl;
    //将整型数n按十六进制转换为字符串并输出
    itoa(n,str,16);
    cout<<"str="<<str<<endl;
   

注意:在vs上,对itoa函数c++可能出现error,此时将itoa改写成_itoa_s()即可。

itoa()介绍如下所示:

char*itoa(int value,char*string,int radix);
//int value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等

itoa的功能是将任意类型的数字转化为字符串,与其功能相反的函数是atoi!其实16进制数就是字符数组,因为有ABCDEF啊!

如何给地址赋值?

假设我们现在需要给一个指针指定确定的32/64位地址,应该怎么操作?

int *p = (int *)0x******;

注意需要加上int*强制类型转换


    原文作者:进制转换
    原文地址: https://blog.csdn.net/yuquan87/article/details/79980230
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞