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

zllang 2008-06-04 08:24:55
.请问怎么将string 转换为 char数组 .我用一个循环能做。不过我想用一个函数写出来。我用这段代码提示返回局部变量地址:char* zhuanhuan(string src)
{ char dst[255];


for(int i=0;i<=src.length();i++)
dst[i]=src[i];

return dst;}
这样不对该怎么样写呢?
...全文
52883 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mes_LHK 2010-09-22
  • 打赏
  • 举报
回复
学习大牛们的牛逼之处
kuangsun 2010-08-31
  • 打赏
  • 举报
回复
顶一个,基础但实用!
fhb13 2008-06-04
  • 打赏
  • 举报
回复 1
用string的成员函数c_str()可以搞定,他会返回一个指向char字符串的指针。
zllang 2008-06-04
  • 打赏
  • 举报
回复
谢谢..书上看过.不过没实际写过多少代码 ..
babyvox1999 2008-06-04
  • 打赏
  • 举报
回复
这个写一个函数比较浪费,strcpy(dst,src.c_str());
jintianfree 2008-06-04
  • 打赏
  • 举报
回复
c_str函数的返回值是const char*的,不能直接赋值给char*,

所以就需要我们进行相应的操作转化,下面就是这一转化过程。

c++语言提供了两种字符串实现,其中较原始的一种只是字符串的c语言实现。

与C语言的其他部分一样,它在c+的所有实现中可用,

我们将这种实现提供的字符串对象,归为c-串,每个c-串char*类型的。

标准头文件<cstring>包含操作c-串的函数库。

这些库函数表达了我们希望使用的几乎每种字符串操作。

当调用库函数,客户程序提供的是string类型参数,

而库函数内部实现用的是c-串,因此需要将string对象,

转化为char*对象,而c_str()提供了这样一种方法,

它返回一个客户程序可读不可改的指向字符数组的指针。

例:


#include <iostream>
#include <string>
using std::string;void main()
{
string add_to="hello!";
//std::cout<<add_to;
const string add_on="baby";

const char*cfirst = add_to.c_str();
const char*csecond = add_on.c_str();
char*copy = new char[strlen(cfirst) + strlen(csecond) + 1];
strcpy( copy, cfirst);
strcat( copy, csecond);
add_to = copy;
delete [] copy;
std::cout<<add_to<<std::endl;
c_spark 2008-06-04
  • 打赏
  • 举报
回复
栈中的空间当函数体结束时,便被释放,动态申请堆空间
char* zhuanhuan(string src) 
{
char *dst = new char[255];
int i;
for(i=0;i <=src.length();i++)
dst[i]=src[i];
dst[i] = '\0';
return dst;
}
zllang 2008-06-04
  • 打赏
  • 举报
回复
自己先顶个,我在UBUNTU下,用的FF浏览器,好像贴代码不是很方便.

33,313

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧