string,char ,int 转化

一、各进制赋值
1.16进制赋值

int i=0x12AD;

int i=0X12AD;

int i=0x12Ad;

int i=0X12Ad;

//以上都是16进制,表示10进制173;

2.8进制赋值

int num=017;

//数字前面加0就是8进制,017表示10进制15,若写018则编译出错。(error C2041: 非法的数字“8”(用于基“8”))

二、int/char/string转换
1.char*/char[]转int

atoi();

char* a="154";    int i=atoi(a);   //成功

char a[]="154";    int i=atoi(a);   //成功

char* a="abc";     int i=atoi(a);   //i=0,也没出错

2.int转char[](转char*老崩溃)

int n=154;

char p[10];

itoa(n,p,16);

//16是进制,可以自己指定。结果:p=“9a”;

3.char*/char[]转string

char*/char[] p="dsdsdsd";

string str=p;//直接赋值就行

4.string转char*

string p="ewqewq";

const char* o=p.c_str();//必须得是const

5.string/int互转

通过char即可;

三、sscanf/sprintf(c语言)
scanf:把键盘输入的数据给指定变量;

printf:打印指定变量至屏幕;

sscanf:把某const char*的数据给指定变量;

sprintf:把数据输入到指定char*。

1.sscanf():int sscanf(const char *buffer, const char *format, [argument ]...);

e.g.char buf[512] ;
  sscanf("123456 ", "%s", buf);
  printf("%s\n", buf);
  结果为:123456

e.g.sscanf("123456 ", "%4s", buf);
  printf("%s\n", buf);
  结果为:1234

2.sprintf():int sprintf(char *buffer, const char *format, [argument] … );

格式控制符的类型要和后面argument的类型一样。

sprintf(s, "%d", 123);  //把整数123打印成一个字符串保存在s中,

sprintf(s, "%8x", 4567);  //小写16进制,宽度占8个位置,右对齐

sprintf(buf, "fdsafsdf");

char a = 'a';    sprintf(buf, "The ASCII code of a is %d.", a);

四、位操作运算
位操作只能用于整形数据,对实类型进行位操作会被编译器报错。

1.&(与操作)

int i=100;(二进制1100100)

则i&1=0;//只是最后一位和1进行与运算,所以可以判断奇偶性;

2.^(异或,两者不同为1)

void Swap(int &a, int &b)  
{  
    if (a != b)  
    {  
        a ^= b;  
        b ^= a;  
        a ^= b;  
    }  
}  //交换两个数不用第3个变量

3.移位

e.g.int n=98;

      n=n>>1;//n=49;

<<各二进位全部左移若干位,高位丢弃,低位补0

>>各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)
————————————————
版权声明:本文为CSDN博主「ChakYu_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_27565063/article/details/77056928

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值