char字符转换成int整形,字符串与整型之间的互相转换

将字符char类型转换为int整型

//将字符char类型转换成int整型的方法如下:
  char str_data = '5';
  int int_data = (int)(str_data - '0');
  cout << int_data << endl;
//同样的道理int转换成字符char是利用相反的方向
  int data_int = 9;
  char data_str = (char)(data_int + '0');
  cout << data_str << endl;
 //为什么一个用+,一个用-呢
 其实字符的相加相减是ASCII的相加相减,'0'的ascii的值为48,'5'的ascii的值为53
 

将字符串转换成int

//方法一:
//atoi是c语言库函数
  char p[] = "123456";
  long a = atoi(p);
  cout << a << endl;
方法二:
  //使用stringstream
  string s="17";
  stringstream ss;
  ss<<s;
  int i;
  ss>>i;
  cout<<i<<endl; //输出17
//方法三:
  //使用boost库中的lexical_cast
  string s = "17";
  int i = boost::lexical_cast<int>(s);
  cout << i << endl; // 17 

将int整型转换成字符串

//将int整型转化为字符串型
int number = 123456;
char str[25];
/*itoa函数参数说明
      第三个参数表示进制,10代表10进制
*/    
itoa(number,str,10);
//还可以用sprintf()函数作为转换,它指的是字符串格式化命令
//第二个参数:格式化字符串
/*
   %% 印出百分比符号,不转换。
   %c 整数转成对应的 ASCII 字元。
   %d 整数转成十进位。
   %f 倍精确度数字转成浮点数。
   %o 整数转成八进位。
   %s 整数转成字符串。
   %x 整数转成小写十六进位。
   %X 整数转成大写十六进位。
*/
int number2 = 987654;
char str2[25];

sprintf(str2,"%d",number2);
cout << str2 << endl;



猜你喜欢

转载自blog.csdn.net/m0_37806112/article/details/80464884