C++中string 如何转char

如题所述

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

    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!"

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-12
string s;//...cout << s.str_c();
第2个回答  2013-09-12
char arcStr[80];string s;
strcpy(arcStr, s.str_c());

参考文献 - 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 赋值给char *
方法一:使用stringstream进行转换。示例:include <iostream>#include <string>#include <sstream>using namespace std;int main(int argc, char *argv[]){ stringstream sstr; sstr.clear(); char * ch = new char[1024]; string s="abcd"; sstr<>ch;\/\/将stringstream中的值...

C++怎么把string 转换为char型数组
C++的string类是无法直接转换成char数组的,因为string类型是一个类,是封装的类型,而char数组只是一个简单类型,如果要转换,可以利用string类的一个名为c_str()的成员函数。c_str()函数返回一个const类型的char指针,相当于是返回了一个const char数组。这个char指针是const类型的,指向的字符串内容不...

C++怎么把string 转换为char型数组
用指针,遍历string,把每一个*p赋值给char[I],遍历结束的时候,char数组里面就保存了string的每个字母.char *p = string;for (int i=0, *p; i<len(string); i++, *p++){ char[I] = *p;} 主要部分就是这样的了.转自网络

C++中如何用sprintf()把string类型输入到char[]类型中?
sprintf是C++继承自C语言的函数,无法直接支持string类型,所以要先把string类型转为基础类型,也就是char*,这里需要使用string类的成员函数c_str();该成员函数功能为,将string的内容转为C语言的字符数组表达形式。所以用sprintf将string对象str,输出的char[]数组array中的代码可以写作:sprintf(array, "...

C++怎么把string 转换为char型数组
把string类型转换为char*数组:strcpy(ch,str.c_str()); \/\/即可 for(int i = 0; i < str.length(); i++) \/\/也可 { ch = str.at(i);ch ++;}

c++中怎么把string类型传入char*类型的函数参数中
str;对于函数fun(char *,xx,...)使用fun(str.c_str(),xx,...)可把string类型传入char*类型的函数参数中。string是C++编程语言中的字符串。 string类是不可变的,对string类的任何改变,都是返回一个新的string类对象,而char *是C语言中的字符指针,两者进行相应的转换,即可进行专递。

C++中如何将string转换为vector<char>?
1)for(i=0;i<s.size();i++){v[i]=s[i];} 2)string s("122335245");vector<char> v(s.size());copy(s.begin(),s.end(),v.begin());

c++中怎么把string转化为数组
1、因为string可以看作是数组构成的串,所以直接定义一个char的指针,指过去就可以了。示例如下:include <windows.h> #include <stdio.h> #include #include <iostream>using namespace std;int main(){ string s1 = "abcdeg"; \/\/定义string const char *k; \/\/定义char指针 k =...

如何将C++中string类型的字符串赋给unsigned char数组
由于string内部本身就是char的动态数组 另外char和unsigned char的存储空间完全一样 都是1byte 一般直接 &str[0]就可以了 如果要复制的话 unsigned char arr[size] = {0}; \/\/这个size 要大于 str.size();memcpy(arr, &str[0], str.size());如何将C++中string类型的字符串转化为wchat_t类型...

相似回答