我有一段代码有疑问,请各位大侠看一下。

图灵转世 2009-12-05 05:51:43
#include <ctime>
#include <iostream>
#include <string>
#include <boost/asio.hpp>
using boost::asio::ip::tcp;
std::string make_daytime_string()
{
using namespace std; // For time_t, time and ctime;
time_t now = time(0);
return ctime(&now);
}

其中return的是个char * 的指针,但是函数要求返回的是一个std::string ,这样可以吗。
请大侠给我好好讲解一下,这是c++的啥用法。
...全文
144 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoyuchen3v 2009-12-05
  • 打赏
  • 举报
回复
string 有到char* 的隐式转换
z569362161 2009-12-05
  • 打赏
  • 举报
回复
隐式转化的一种
problc 2009-12-05
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 deng1243 的回复:]
引用 5 楼 lori227 的回复:
string s(char*) 和 string& operator = (const char* )

up
[/Quote]
up
deng1243 2009-12-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lori227 的回复:]
string s(char*) 和 string& operator = (const char* )
[/Quote]
up
yeah_aly 2009-12-05
  • 打赏
  • 举报
回复
帮忙up~
cxalqq 2009-12-05
  • 打赏
  • 举报
回复
返回char*就是返回字符数组的首地址
老邓 2009-12-05
  • 打赏
  • 举报
回复
这样也是隐式转化的一种:
#include <iostream>
#include <string>

using namespace std;

void func(const int& i)
{
cout << i << endl;
}

int main()
{
func(2.6);
return 0;
}
老邓 2009-12-05
  • 打赏
  • 举报
回复
隐式转换。
比如这个代码,会将const char*转化成std::string,再作为std::string&输出。
#include <iostream>
#include <string>

using namespace std;

void func(const string& str)
{
cout << str << endl;
}

int main()
{
func("Hello World!");
return 0;
}
macrojj 2009-12-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 guyuguang8628391 的回复:]
那我请问一下,要实现这种类型的自动转化,需要用到string中的那个函数,是啥构造函数,实现该函数以后,就可以实现自动类型转换。
[/Quote]

调用了string(const char *)
还有 operator=(const char*)都可以实现转换
小小攻城师 2009-12-05
  • 打赏
  • 举报
回复
string 跟 c字符串的区别只是最后有没有‘\0’
string同样可以转化为c字符串
#include <iostream> 
#include <string>
using namespace std;
int main()
{
string x;
cin>> x;
const char *p = x.c_str();
while (*p != '\0')
cout<< *p++;
system("pause");
}
yzx714 2009-12-05
  • 打赏
  • 举报
回复
string实现了从char*的转换
lori227 2009-12-05
  • 打赏
  • 举报
回复
string s(char*) 和 string& operator = (const char* )
pengzhixi 2009-12-05
  • 打赏
  • 举报
回复
隐式构造函数
string(const char*){//.....}
图灵转世 2009-12-05
  • 打赏
  • 举报
回复
那我请问一下,要实现这种类型的自动转化,需要用到string中的那个函数,是啥构造函数,实现该函数以后,就可以实现自动类型转换。
lori227 2009-12-05
  • 打赏
  • 举报
回复
char* 可以直接转成std::string
pengzhixi 2009-12-05
  • 打赏
  • 举报
回复
std::string make_daytime_string()
{
using namespace std; // For time_t, time and ctime;
char *s="abc";
string t(s);
return t;
}

举个列子

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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