找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2029|回復: 0
打印 上一主題 下一主題
收起左側

c++ String與int之間的轉換

[復制鏈接]
跳轉到指定樓層
樓主
ID:591424 發(fā)表于 2022-3-21 15:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
string 轉 CStringCString.format("%s", string.c_str());
char 轉 CStringCString.format("%s", char*);
char 轉 stringstring s(char *);
string 轉 char *char *p = string.c_str();
CString 轉 stringstring s(CString.GetBuffer());
1,string -> CStringCString.format("%s", string.c_str());用c_str()確實比data()要好.2,char -> stringstring s(char *);你的只能初始化,在不是初始化的地方最好還是用assign().3,CString -> stringstring s(CString.GetBuffer());GetBuffer()后一定要ReleaseBuffer(),否則就沒有釋放緩沖區(qū)所占的空間.

《C++標準函數庫》中說的有三個函數可以將字符串的內容轉換為字符數組和C—string1.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(){undefined// TODO: Add your control notification handler code hereCStringss="1212.12";int temp=atoi(ss);CString aa;aa.Format("%d",temp);AfxMessageBox("var is " + aa);}
sart.Format("%s",buf);
CString互轉char*
///char * TO cstringCString 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));

CString類型的轉換成int將字符轉換為整數,可以使用atoi、_atoi64或atol。
//CString aaa = "16" ;//int int_chage = atoi((lpcstr)aaa) ;

而將數字轉換為CString變量,可以使用CString的Format函數。如CString s;int i = 64;s.Format("%d", i)Format函數的功能很強,值得你研究一下。如果是使用char數組,也可以使用sprintf函數。
//CString ss="1212.12";//int temp=atoi(ss);//CString aa;//aa.Format("%d",temp);

數字->字符串除了用CString::Format,還有FormatV、sprintf和不需要借助于Afx的itoa

#include <stdlib.h>
int atoi(const char *nptr);long atol(const char *nptr);long long atoll(const char *nptr);long long atoq(const char *nptr);
string aa("aaa");
char *c=aa.c_str();


cannot convert from 'const char *' to 'char *'
const char *c=aa.c_str();

string.c_str()只能轉換成const char *,要轉成char *這樣寫:
string mngName;char t[200]; memset(t,0,200); strcpy(t,mngName.c_str());
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表