原标题:在C++中将string转换为char数组
来自:https://www.linuxmi.com/c-string-char.html
相信很多人都遇到过这样一个错误:‘cannot convert std::string to char[] or char* data type’。
示例:
输入 : string s = "linuxmi" ;
输出 : char s[] = { 'l', 'i', 'n', 'u', 'x', 'm', 'i' } ;
输入 : string s = "python" ;
输出 : char s[] = { 'p', 'y', 't', 'h', 'o', 'n' } ;
一种方法是将 string的内容复制到 char数组中。这可以在c_str和strcpy函数的帮助下实现。
c_str函数用于返回一个指向数组的指针,该数组包含一个以空结尾的字符序列,该序列表示字符串的当前值。
语法:
const char* c_str const ;
如果抛出异常,则字符串中没有任何更改。但是,当需要查找或访问单个元素时,我们可以使用strcpy函数将其复制到char数组中。在复制它之后,我们可以像使用一个简单的数组一样使用它。
获取的字符数组的长度不应小于输入字符串的长度。
// string转换到char数组CPP程序
# include
usingnamespacestd;
// 驱动代码
intmain
{
// 为字符串赋值
strings = "www.linuxmi.com";
intn = s.length;
//声明char数组
charchar_array[n + 1];
// 将string 的内容复制到char数组中
strcpy(char_array, s.c_str);
for( inti = 0; i < n; i++)
cout<< char_array[i];
cout<< "n";
return0;
}
输出:
www.linuxmi.com
另一种方法:
// 转换 string 到char数组CPP程序
# include
# include
usingnamespacestd;
//驱动程序代码
intmain
{
// 为字符串赋值
strings( "www.linuxmi.com");
// 声明字符数组 : p
charp[s.length];
inti;
for(i = 0; i < sizeof(p); i++) {
p[i] = s[i];
cout<< p[i];
}
cout<< "n";
return0;
}
输出:
www.linuxmi.com
OK,本文就这样,有什么不对的地方请指正。 返回搜狐,查看更多
责任编辑: