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

前面用char*S=newchar[temp_len];得到了一个指向char数组的指针S,如何把这个S转换成string*类型?(后面要用到string*类型的参数)... 前面用char *S =new char[temp_len]; 得到了一个指向char数组的指针S,如何把这个S转换成string*类型?(后面要用到string*类型的参数) 展开
 我来答
大宝妈谈教育
高粉答主

2020-04-02 · 关注我不会让你失望
知道小有建树答主
回答量:3306
采纳率:100%
帮助的人:55.2万
展开全部

这个比较简单,如下参考步骤。

#include"stdio.h"

#include<stdlib.h>

#include<string.h>

voidmain()

{

intn=123456789;

charstr[20];

itoa(n,str,10);

printf("%s\n",str);

}



扩展资料:

int转string的方式

1、采用标准库中的to_string函数。

inti=12;

cout<<std::to_string(i)<<endl;

您不需要包含本实用程序中应该包含的任何头文件,但是您不需要包含它们,直接使用它们,并定义任何其他内置的字符串到字符串重载函数,这很方便。

2、采用sstream中定义的字符串流对象来实现。

ostringstreamos;//构造一个输出字符串流,流内容为空;

inti=12;

os<<i;//向输出字符串流中输出int整数i的内容;

cout<<os.str()<<endl;//利用字符串流的str函数获取流中的内容;

字符串流对象的str函数对于istringstream和ostringstream都适用,都可以获取流中的内容。

ckpyn
推荐于2018-04-20 · TA获得超过2052个赞
知道小有建树答主
回答量:1179
采纳率:85%
帮助的人:377万
展开全部

本来,如果代码中用了string,就没必要再使用char*处理字符串。

如果非要做这样的转换,可以这样:

char *S =new char[temp_len];
std::string s1(S);            //这里调用string的一个带参数的构造函数,相当于将*S做
                              //一个拷贝
std::string *PStr=&s1;        //不能将*string直接指向char*

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


欢迎追问

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
john_lee1969
2014-07-20 · TA获得超过1700个赞
知道小有建树答主
回答量:419
采纳率:100%
帮助的人:529万
展开全部
都用到了 std::string 类,还用 new char 作甚?
直接定义 std::string S;
如果坚持要用指针,那么定义:
std::string temp;
std::string* s = &temp;
如果坚持要用 new,那么定义:
std::string* s = new std::string;
更多追问追答
追问
您说的对。不过这里是在原有系统上做小升级,牵一发动全身,所以如果能转换的话就不对原有代码做改动了。
追答
那就只能创建一个 string 的对象,内容是 S 的一个 copy,创建后的 string 对象,与 S 没有关联。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式