整理了平时常用的几个函数
字符串转整形
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*强制类型转换