c++如何将string 转换为char*(C#怎么样把一个String类型转换成Char类型)

2024-09-11 百科 86阅读 投稿:冷温柔

1.c++如何将string 转换为char*

1、如果要将string转换为char*,可以使用string提供的函数c_str() ,或是函数data(),data除了返回字符串内容外,不附加结束符'/0',而c_str()返回一个以'/0'结尾的字符数组。

2、const char *c_str();

c_str()函数返回一个指向正规C字符串的指针,内容与本string串相同.

这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式.

注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针

比如:最好不要这样:

char* c;

string s="1234";

c = s.c_str(); //c最后指向的内容是垃圾,因为s对象被析构,其内容被处理

应该这样用:

char c[20];

string s="1234";

strcpy(c,s.c_str());

这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作

再举个例子

c_str() 以 char* 形式传回 string 内含字符串

如果一个函数要求char*参数,可以使用c_str()方法:

string s = "Hello World!";

printf("%s",s.c_str()); //输出 "Hello World!"

2.C#怎么样把一个String类型转换成Char类型

你说的是这个意思吧:

static void Main(string[] args)

{

string str="1";

char c;

c=Convert.ToChar(str);

Console.WriteLine(c);

}

//string类型本来就可以看作一个char数组,如:

string str="ABCDE";

Console.WriteLine(str[3]);//输出D

foreach (char c in str)

Console.WriteLine(c);

//当然你也可以把它转换成真正的char数组,如:

char[] cs= s.ToCharArray(0,s.Length);

foreach (char c in cs)

Console.WriteLine(c);

//上面写错一点点

//string类型本来就可以看作一个char数组,如:

string str="ABCDE";

Console.WriteLine(str[3]);//输出D

foreach (char c in str)

Console.WriteLine(c);

//当然你也可以把它转换成真正的char数组,如:

char[] cs= str.ToCharArray(0,str.Length);

foreach (char c in cs)

Console.WriteLine(c);

--------------------------

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 sb=new StringBuilder();

foreach(char c in cc)

{

sb.Append(c);

}

string s=sb.ToString();

StringBuilder 的 Append 方法支持多种参数,所以数组转换成string基本上都可以用它。

另外 string[] 转换成string,.Net框架提供了一个使用的方法

string strOr= "OR";

string result=string.Concat(new string[]{" A ",strOr," B ",Environment.NewLine," C ",strOr," D "});

3.C++怎么把string 转换为char型数组

C++的string类是无法直接转换成char数组的,因为string类型是一个类,是封装的类型,而char数组只是一个简单类型,如果要转换,可以利用string类的一个名为c_str()的成员函数。

c_str()函数返回一个const类型的char指针,相当于是返回了一个const char数组。这个char指针是const类型的,指向的字符串内容不可以修改,所以是无法直接操作这个指针的,然后将这个指针指向的字符串内容复制到一个新的char数组的内存空间,这样就完成了string对象向一个char数组的转换。

4.怎么将string转换成char

1.直接在构造String时建立。

char data[] = {'s', 'g', 'k'};

String str = new String(data);

2.String有方法可以直接转换。

String.valueOf(char[] chr)就可以。

如:

char[] cha = {'s','g','h'};

String n = String.valueOf(cha);

public class Test

{

public static void main(String [] args)

{

char c = 'a';

System.out.println (c);

String str = String.valueOf(c);

System.out.println (str);

}

}

5.C#如何将string转为char[]

使用string的方法ToCharArray就可以把string转换成char[]数据 MSDN对ToCharArray如下说明 public char[] ToCharArray() 返回值 Type: System.Char[] 元素为此实例的各字符的 Unicode 字符数组。

如果此实例是空字符串,则返回的数组为空且长度为零。 例子: using System;public class StringSplit2 { public static void Main() { string delimStr = " ,.:"; char [] delimiter = delimStr.ToCharArray(); string words = "one two,three:four."; string [] split = null; Console.WriteLine("The delimiters are -{0}-", delimStr); for (int x = 1; x <= 5; x++) { split = words.Split(delimiter, x); Console.WriteLine("/ncount = {0,2} 。

..", x); foreach (string s in split) { Console.WriteLine("-{0}-", s); } } }}// The example displays the following output:// The delimiters are - ,.:-// count = 1 。

..// -one two,three:four.-// count = 2 。

..// -one-// -two,three:four.-// count = 3 。

..// -one-// -two-// -three:four.-// count = 4 。

..// -one-// -two-// -three-// -four.-// count = 5 。

..// -one-// -two-// -three-// -four-// --。

6.c#怎么把string类型转换成char

static void Main(string[] args){string str="1";char c;c=Convert.ToChar(str);Console.WriteLine(c);}//string类型本来就可以看作一个char数组,如:string str="ABCDE";Console.WriteLine(str[3]);//输出Dforeach (char c in str)Console.WriteLine(c);//当然你也可以把它转换成真正的char数组,如:char[] cs= s.ToCharArray(0,s.Length);foreach (char c in cs)Console.WriteLine(c);//上面写错一点点//string类型本来就可以看作一个char数组,如:string str="ABCDE";Console.WriteLine(str[3]);//输出Dforeach (char c in str)Console.WriteLine(c);//当然你也可以把它转换成真正的char数组,如:char[] cs= str.ToCharArray(0,str.Length);foreach (char c in cs)Console.WriteLine(c);--------------------------C#中char[]与string互相转换的写法:string 转换成 Char[]string ss="abcdefg";char[] cc=ss.ToCharArray();Char[] 转换成stringstring s=new string(cc);此外,byte[] 与 string 之间的装换byte[] bb=Encoding.UTF8.GetBytes(ss);string s=Encoding.UTF8.GetString(bb);下面我们利用 StringBuilder 来进行数组 与 string 间的转换 , 很简单,代码如下 using System.Text;StringBuilder sb=new StringBuilder();foreach(char c in cc){sb.Append(c);}string s=sb.ToString();StringBuilder 的 Append 方法支持多种参数,所以数组转换成string基本上都可以用它。

另外 string[] 转换成string,.Net框架提供了一个使用的方法string strOr= "OR";string result=string.Concat(new string[]{" A ",strOr," B ",Environment.NewLine," C ",strOr," D "});来源:网络。

7.怎样把string转换成char

1、如果要将string转换为char*,可以使用string提供的函数c_str() ,或是函数data(),data除了返回字符串内容外,不附加结束符'/0',而c_str()返回一个以'/0'结尾的字符数组。

2、const char *c_str();c_str()函数返回一个指向正规C字符串的指针,内容与本string串相同.这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式.注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针比如:最好不要这样:char* c;string s="1234";c = s.c_str(); //c最后指向的内容是垃圾,因为s对象被析构,其内容被处理应该这样用:char c[20];string s="1234";strcpy(c,s.c_str());这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作再举个例子c_str() 以 char* 形式传回 string 内含字符串如果一个函数要求char*参数,可以使用c_str()方法:string s = "Hello World!";printf("%s",s.c_str()); //输出 "Hello World!"。

声明:沿途百知所有(内容)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们将尽快删除