600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > MFC开发- string const char* char* char[]相互转换(全)

MFC开发- string const char* char* char[]相互转换(全)

时间:2022-09-12 14:57:18

相关推荐

MFC开发- string const char*  char*  char[]相互转换(全)

string、const char*、 char* 、char[]四者类型经常会需要转化。

一:转化总结形式如下:

使用时,要对源格式和目标格式进行初始化。源格式赋值为具体的内容,目标格式赋值为空。

二、总结方法:

1、变成string,直接赋值。

2、char[]变成别的,直接赋值。

3、char*变constchar*容易,const char*变char*麻烦。<const_cast><char*>(constchar*);

4、string变char*要通过const char*中转。

5、变成char[]。string逐个赋值,char* const char* strncpy_s()。

三、代码实现(方便初学者,贴的很详细。了解了以上一二点,可跳过代码。)

1、string转为其他类型

①、string转const char*

#include"stdafx.h"

#include<iostream>

int_tmain(intargc,_TCHAR*argv[])

{

std::stringstr ="HelloWorld!";//初始化string类型,并具体赋值

constchar* constc =nullptr;//初始化const char*类型,并赋值为空

constc= str.c_str();//string类型转const char*类型

printf_s("%s\n", str.c_str());//打印string类型数据 .c_str()

printf_s("%s\n", constc);//打印const char*类型数据

return0;

}

②、string转char*

#include"stdafx.h"

#include<iostream>

int_tmain(intargc,_TCHAR*argv[])

{

std::stringstr ="HelloWorld!";//初始化string类型,并具体赋值

char* c =nullptr;//初始化char*类型,并赋值为空

constchar* constc =nullptr;//初始化const char*类型,并赋值为空

constc= str.c_str();//string类型转const char*类型

c=const_cast<char*>(constc);//const char*类型转char*类型

printf_s("%s\n", str.c_str());//打印string类型数据 .c_str()

printf_s("%s\n",c);//打印char*类型数据

return0;

}

③、string转char[]

#include"stdafx.h"

#include<iostream>

int_tmain(intargc,_TCHAR*argv[])

{

std::stringstr ="HelloWorld!";//初始化string类型,并具体赋值

chararrc[20] = {0}; //初始化char[]类型,并赋值为空

for(inti = 0; i < str.length(); i++)//string类型转char[]类型

{

arrc[i]=str[i];

}

printf_s("%s\n", str.c_str());//打印string类型数据 .c_str()

printf_s("%s\n", arrc);//打印char[]类型数据

return0;

}

2、const char*转为其他类型

①const char*转string

#include"stdafx.h"

#include<iostream>

int_tmain(intargc,_TCHAR*argv[])

{

constchar* constc ="Hello World!";//初始化const char*类型,并具体赋值

std::stringstr;//初始化string类型

str= constc;//const char*类型转string类型

printf_s("%s\n", constc);//打印const char*类型数据

printf_s("%s\n", str.c_str());//打印string类型数据

return0;

}

②const char*转char*

#include"stdafx.h"

#include<iostream>

int_tmain(intargc,_TCHAR*argv[])

{

constchar* constc ="Hello World!";//初始化const char*类型,并具体赋值

char* c =nullptr;//初始化char*类型

c=const_cast<char*>(constc);//const char*类型转char*类型

printf_s("%s\n", constc);//打印const char*类型数据

printf_s("%s\n", c);//打印char*类型数据

return0;

}

③const char*转char[]

#include"stdafx.h"

#include<iostream>

int_tmain(intargc,_TCHAR*argv[])

{

constchar* constc ="Hello World!";//初始化const char*类型,并具体赋值

chararrc[20] = { 0 }; //初始化char[]类型,并赋值为空

strncpy_s(arrc,constc,20); //const char*类型转char[]类型

printf_s("%s\n", constc);//打印const char*类型数据

printf_s("%s\n", arrc);//打印char[]类型数据

return0;

}

3、char*转为其他类型

①char*转string

#include"stdafx.h"

#include<iostream>

int_tmain(intargc,_TCHAR*argv[])

{

char* c ="HelloWorld!";//初始化char*类型,并具体赋值

std::stringstr;//初始化string类型

str= c;//char*类型转string类型

printf_s("%s\n", c);//打印char*类型数据

printf_s("%s\n", str.c_str());//打印string类型数据

return0;

}

②char*转const char*

#include"stdafx.h"

#include<iostream>

int_tmain(intargc,_TCHAR*argv[])

{

char* c ="HelloWorld!";//初始化char*类型,并具体赋值

constchar* constc =nullptr;//初始化const char*类型,并具体赋值

constc= c;//char*类型转const char* 类型

printf_s("%s\n", c);//打印char*类型数据

printf_s("%s\n", constc);//打印const char*类型数据

return0;

}

③char*转char[]

#include"stdafx.h"

#include<iostream>

int_tmain(intargc,_TCHAR*argv[])

{

char* c ="HelloWorld!";//初始化char*类型,并具体赋值

chararrc[20] = { 0 };//初始化char[] 类型,并具体赋值

strncpy_s(arrc,c,20); //char*类型转char[]类型

printf_s("%s\n", c);//打印char*类型数据

printf_s("%s\n", arrc);//打印char[]类型数据

return0;

}

4、char[]转为其他类型

#include"stdafx.h"

#include<iostream>

int_tmain(intargc,_TCHAR*argv[])

{

chararrc[20] ="HelloWorld!";//初始化char[]类型,并具体赋值

std::stringstr;//初始化string

constchar* constc =nullptr;//初始化const char*

char*c =nullptr;//初始化char*

str= arrc;//char[]类型转string类型

constc= arrc;//char[]类型转const char* 类型

c= arrc;//char[]类型转char*类型

printf_s("%s\n", arrc);//打印char[]类型数据

printf_s("%s\n", str.c_str());//打印string类型数据

printf_s("%s\n", constc);//打印const char*类型数据

printf_s("%s\n", c);//打印char*类型数据

return0;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。