C语言cstring转换为char数组,string,CString,char*之间的转化

本文详细探讨了C++中string、CString、char*之间的转换技巧,包括int转CString、string转CString、char*转CString的方法,以及注意事项,如使用c_str()、GetBuffer()和ReleaseBuffer()等。重点讲解了atoi、itoa函数在整数转换中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

string,CString,char*之间的转化

int 转 CString:CString.Format("%d",int);

...............................

string 转 CStringCString.format("%s", string.c_str());

用c_str()确实比data()要好.

.......................................

char* 转 CStringCString.format("%s", char*);

CString strtest;

char * charpoint;

charpoint="give string a value";

strtest=charpoint; //直接付值

...................................................................

CString 转 int CString  ss="1212.12";

int temp=atoi(ss); //atoi _atoi64或atol

将字符转换为整数,可以使用atoi、_atoi64或atol。

int int_chage = atoi((lpcstr)ss) ;

或:

CString str = "23";

UINT uint;

sscanf(str, "%d", uint);

..............................

string 转 int..............................

char* 转 int

#include

int atoi(const char *nptr);

long atol(const char *nptr);

long long atoll(const char *nptr);

long long atoq(const char *nptr);

...................................................................

CString 转 string  string s(CString.GetBuffer());

GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.

..........................................

int 转 string..........................................

char* 转 string string s(char *);

你的只能初始化,在不是初始化的地方最好还是用assign().

...................................................................

CString 转 char *

CString strtest="wwwwttttttt";

charpoint=strtest.GetBuffer(strtest.GetLength());

CString转换 char[100]

char a[100];

CString str("aaaaaa");

strncpy(a,(LPCTSTR)str,sizeof(a));

CString  str="aaa";

char*  ch;

ch=(char*)(LPCTSTR)str;

..........................................

int 转 char * 在stdlib.h中有个函数itoa()

itoa的用法:

itoa(i,num,10);

i 需要转换成字符的数字

num 转换后保存字符的变量

10 转换数字的基数(进制)10就是说按照10进制转换数字。还可以是2,8,16等等你喜欢的进制类型

原形:char *itoa(int value, char* string, int radix);

实例:

#include "stdlib.h"

#include "stdio.h"

main()

{

int i=1234;

char s[5];

itoa(i,s,10);

printf("%s",s);

getchar();

}

..........................................

string 转 char *

char *p = string.c_str();

string aa("aaa");

char *c=aa.c_str();

string mngName;

char t[200];

memset(t,0,200);

strcpy(t,mngName.c_str());

...................................................................

标准C里没有string,char *==char []==string

可以用CString.Format("%s",char *)这个方法来将char *转成CString。要把CString转成char *,用操

作符(LPCSTR)CString就可以了。

cannot convert from 'const char *' to 'char *'

const char *c=aa.c_str();

string.c_str()只能转换成const char *

CString 头文件#include

string 头文件#include

CString 转char *

CString cstr;

char *p = (LPSTR)(LPCTSTR)cstr;

string 转 CString

CString.format("%s", string.c_str());

char 转 CString

CString.format("%s", char*);

char 转 string

string s(char *);

string 转 char *

char *p = string.c_str();

CString 转 string

string s(CString.GetBuffer());

1,string -> CString

CString.format("%s", string.c_str());

用c_str()确实比data()要好.

2,char -> string

string s(char *);

只能初始化,在不是初始化的地方最好还是用assign().

3,CString -> string

string s(CString.GetBuffer());

GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.

《C++标准函数库》中说的

有三个函数可以将字符串的内容转换为字符数组和C―string

1.data(),返回没有"/0“的字符串数组

2,c_str(),返回有"/0“的字符串数组

3,copy()

―――――――――――――――――――――

CString与int、char*、char[100]之间的转换- -

CString与int、char*、char[100]之间的转换- -

CString互转int

将字符转换为整数,可以使用atoi、_atoi64或atol。

而将数字转换为CString变量,可以使用CString的Format函数。如

CString s;

int i = 64;

s.Format("%d", i)

Format函数的功能很强,值得你研究一下。

void CStrDlg::OnButton1()

{

// TODO: Add your control notification handler code here

CString

ss="1212.12″;

int temp=atoi(ss);

CString aa;

aa.Format("%d",temp);

AfxMessageBox("var is " + aa);

}

sart.Format("%s",buf);

CString互转char*

///char * TO cstring

CString strtest;

char * charpoint;

charpoint="give string a value";

strtest=charpoint;

///cstring TO char *

CString 转char *

CString cstr;

char *p = (LPSTR)(LPCTSTR)cstr;

string 转 CString

CString.format("%s", string.c_str());

char 转 CString

CString.format("%s", char*);

char 转 string

string s(char *);

string 转 char *

char *p = string.c_str();

CString 转 string

string s(CString.GetBuffer());

1,string -> CString

CString.format("%s", string.c_str());

用c_str()确实比data()要好.

2,char -> string

string s(char *);

只能初始化,在不是初始化的地方最好还是用assign().

3,CString -> string

string s(CString.GetBuffer());

GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.

《C++标准函数库》中说的

有三个函数可以将字符串的内容转换为字符数组和C―string

1.data(),返回没有"/0“的字符串数组

2,c_str(),返回有"/0“的字符串数组

3,copy()

―――――――――――――――――――――

CString与int、char*、char[100]之间的转换- -

CString与int、char*、char[100]之间的转换- -

CString互转int

将字符转换为整数,可以使用atoi、_atoi64或atol。

而将数字转换为CString变量,可以使用CString的Format函数。如

CString s;

int i = 64;

s.Format("%d", i)

Format函数的功能很强,值得你研究一下。

void CStrDlg::OnButton1()

{

// TODO: Add your control notification handler code here

CString

ss="1212.12″;

int temp=atoi(ss);

CString aa;

aa.Format("%d",temp);

AfxMessageBox("var is " + aa);

}

sart.Format("%s",buf);

CString互转char*

///char * TO cstring

CString strtest;

char * charpoint;

charpoint="give string a value";

strtest=charpoint;

///cstring TO char *

charpoint=strtest.GetBuffer(strtest.GetLength());

标准C里没有string,char *==char []==string

可以用CString.Format("%s",char *)这个方法来将char *转成CString。要把CString转成char *,用操作符(LPCSTR)CString就可以了。

CString转换 char[100]

char a[100];

CString str("aaaaaa");

strncpy(a,(LPCTSTR)str,sizeof(a));

charpoint=strtest.GetBuffer(strtest.GetLength());

标准C里没有string,char *==char []==string

可以用CString.Format("%s",char *)这个方法来将char *转成CString。要把CString转成char *,用操作符(LPCSTR)CString就可以了。

CString转换 char[100]

char a[100];

CString str("aaaaaa");

strncpy(a,(LPCTSTR)str,sizeof(a));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值