char 转 string

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));
### 将Char类型换为String类型的方法 在C++中,将`char`类型换为`string`类型可以通过多种方法实现。以下是几种常见的方法: #### 方法一:使用`std::string`构造函数 可以直接通过`std::string`的构造函数将`char`类型的变量换为`string`类型。例如: ```cpp char c = 'A'; std::string str(1, c); // 构造一个包含单个字符c的字符串 ``` 这种方法利用了`std::string`的构造函数,接受一个字符和重复次数作为参数[^1]。 #### 方法二:使用`std::to_string`函数 虽然`std::to_string`主要用于将数值类型(如`int`、`float`等)换为字符串,但它也可以间接用于`char`类型。例如: ```cpp char c = '9'; // 假设字符是数字 int num = c - '0'; // 将字符换为对应的整数值 std::string str = std::to_string(num); // 使用to_string将整数换为字符串 ``` 需要注意的是,这种方法适用于字符表示的数字(如`'0'`到`'9'`),而对于其他字符可能需要额外处理[^4]。 #### 方法三:使用`ostringstream` 可以借助`std::ostringstream`类将`char`类型换为`string`类型。例如: ```cpp #include <sstream> #include <string> char c = 'B'; std::ostringstream oss; oss << c; // 将字符写入流中 std::string str = oss.str(); // 获取流中的字符串 ``` 这种方法较为灵活,适合复杂的类型换场景[^3]。 #### 方法四:直接拼接 可以通过将`char`与空字符串拼接的方式实现换。例如: ```cpp char c = 'C'; std::string str = "" + c; // 将字符与空字符串拼接 ``` 这种简单的方法适用于单个字符的换[^5]。 #### 注意事项 - 如果需要将固定长度的`char`数组换为`string`,可以使用`std::string`的构造函数,并指定长度以避免附加的义字符。例如: ```cpp char arr[256] = "123987/x"; int len = 6; // 实际有效长度 std::string str(arr, len); // 构造时指定长度 ``` - 在处理字节数组或网络数据时,务必注意字符编码问题,以避免出现乱码或垃圾值[^2]。 ### 示例代码 以下是一个完整的示例,展示如何将`char`类型换为`string`类型: ```cpp #include <iostream> #include <string> #include <sstream> int main() { char c = 'D'; // 方法一:使用构造函数 std::string str1(1, c); std::cout << "Method 1: " << str1 << std::endl; // 方法二:使用ostringstream std::ostringstream oss; oss << c; std::string str2 = oss.str(); std::cout << "Method 2: " << str2 << std::endl; // 方法三:直接拼接 std::string str3 = "" + c; std::cout << "Method 3: " << str3 << std::endl; return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值