c语言 char string,c语言 char 的用法

kodinid 2 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言 char string问题,于是小编就整理了4个相关介绍c语言 char string的解答,让我们一起看看吧。

  1. c#char转String?
  2. C++char转string?
  3. C++中如何把char*转换成string*?
  4. char类型怎么转换为string?

c#char转String?

  string 转换成 Char[]  string ss = "abcdefg";  char[] cc = ss.ToCharArray();  Char[] 转换成string  string s = new string(cc);  此外,byte[] 与 string 之间的装换  byte[] bb = Encoding.UTF8.GetBytes(ss);  string s = Encoding.UTF8.GetString(bb);  下面利用 StringBuilder 来进行数组 与 string 间的转换 , 很简单代码如下  using System.Text;  StringBuilder *** = new StringBuilder();  foreach(char c in cc)  {  ***.append(c);  }  string s = ***.ToString();  StringBuilder 的 Append 方法支持多种参数,所以数组转换成string基本上都可以用它。  另外 string[] 转换成string,.Net框架提供了一个使用的方法  string strOr = "OR";  string result = string.Concat(new string[]{" A ",strOr," B ",Environment.NewLine," C ",strOr," D "});

C++char转string?

由于string是没有类似于string(charc);的构造函数的,所以思路是把char转成char*或char[],再用string的构造函数string(char*)构造string示例代码如下:charc='a';chartmp[1];tmp[0]=c;stringresult(tmp,1);//要用第二个参数,因为这说明string长度是1,不然会产生乱码

c语言 char string,c语言 char 的用法-第1张图片-安济编程网
图片来源网络,侵删)

C++中如何把char*转换成string*?

#include<iostream>#include<string>using namespace std;int main(){ char *a = "DS***Raegge256y53et$%^$%YHEG$@#R@"; string s = a; cout << s << endl; system("pause"); return 0;}

char类型怎么转换为string?

C++11的std::wstring_convert配合std::codecvt模板类完全可以解决这个问题,不会出现

@vczh

所说修改了全局locale会导致污染其他库的问题。

两个模板类的功能是:

std::wstring_convert:转码器,接收一个类似codecvt描述编码转换特性的模板参数,用于将本地化的宽字符wstring和指定编码的字节化string进行互转。

c语言 char string,c语言 char 的用法-第2张图片-安济编程网
(图片来源网络,侵删)

std::codecvt:编码转换特性类,用在wstring_convert的模板参数中来指定使用哪种编码。



所以编码A和B互转的实现方式就是:借助本地化宽字符串,先将以A编码的string转为本地化的wstring,再将本地化的wstring转为B编码后的string。

codecvt一般使用下面两个特化子类
std::codecvt_utf8<wchar_t>:用于UTF8和本地化wchar_t的互转
std::codecvt_byname<wchat_t, char, std::mbstate_t>:用于其他编码(例如GBK)和本地化wchar_t的互转,类的构造函数需要传入编码的locale name,

由于编码的locale name是操作系统决定的(例如GBK在linux下的locale名可能是"zh_CN.GBK",而下是".936"),因此做跨平台的话仍然要给不同系统做适配。

这里给一个windows下,GBK string转UTF8 string的例子:首先将GBK string转wstring

再将wstring转为UTF8 string转码就完成了。utf8_str里的内容应该是"\xE7\x83\xAB"(烫的UTF8)。

到此,以上就是小编对于c语言 char string的问题就介绍到这了,希望介绍关于c语言 char string的4点解答对大家有用。

c语言 char string,c语言 char 的用法-第3张图片-安济编程网
(图片来源网络,侵删)

标签: string char 编码