美文网首页
C/C++类型转换

C/C++类型转换

作者: Jack_Cui | 来源:发表于2019-03-04 14:52 被阅读0次
timg.jpeg

在编程的过程中,要用到各种类型,那么难免就会存在类型转换的问题,有时候不记得类型转换怎么用真的很急人(我是菜鸡)。

既然说到了类型转换那就先说下类型吧!

前提:这里只是简单的说明了几种转换的方法(日常常用的和跨平台可以支持的),并不是所有的办法。


1.c类型:

c类型基本可以分为:基本类型,枚举类型,void类型和派生类型。

基本类型又可以分为整数类型和浮点类型。

image

整数类型又可以分为以下几种:

image

浮点型又可以分为:

image

void类型又可以分为:

image

2.c++类型

基本的内置类型

image

各种变量类型在内存中存储值时需要占用的内存

image

c++里面还有一个很重要的string类型,但是这个就不是基本类型了,是STL库里面的定义,但是是非常常用的,必须要介绍的。在c++里面用字符串我想大部分人都是直接用string这个小可爱的。char*都是用的比较少的。


3.类型转换

int转string

  • stringstream

int aa = 30;
stringstream ss;
ss<string s1 = ss.str();
cout<

  • 使用sprintf

int aa = 30;
char c[8];
int length = sprintf(c, "%05X", aa);
cout<<c<<endl; 0001e="" <="" p="" style="box-sizing: border-box;">

string转int

  • stringstream

string s = "17";
stringstream ss;
ss<int i;
ss>>i;
cout<

  • strtol(string to long)

string s = "17";
char* end;
int i = staticcast<int style="margin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box; word-wrap: break-word !important;">(strtol(s.c</int>str(),&end,16));
cout<<i<<endl; 23<int style="margin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box; word-wrap: break-word !important;">(strtol(s.c_str(),&end,10));
cout<</int>

  • char*转int

char p[]="123456";
long a = atoi(p);
printf("%ld\n",a);

  • char 转int

  • 利用assic码

char Ca = '7';
int Ia = 0;
Ia = (int)Ca - '0';
printf("%d\n",Ia);

  • string转char*
    • c_str()

string Sa = "abc";

char * cha = Sa.c_str();

  • string转char[]

  • 利用循环
    这个由于我们知道string的长度,可以根据length()函数得到,又可以根据下标直接访问,所以用一个循环就可以赋值了。

string pp = "dagah";
char p[8];
int I;
for( i=0;i  p[i] = pp[i];
  p[i] = '\0';
printf("%s\n",p);
cout<<p; <="" p="" style="box-sizing: border-box;">

  • strcpy

char buf[10];
string str("ABCDEFG");
strcpy(buf, str.c_str());

相关文章

网友评论

      本文标题:C/C++类型转换

      本文链接:https://www.haomeiwen.com/subject/enkiuqtx.html