如何将字符串转换为字符? [复制]

Posted

技术标签:

【中文标题】如何将字符串转换为字符? [复制]【英文标题】:How to convert string to char? [duplicate] 【发布时间】:2014-08-05 07:08:26 【问题描述】:

我在输出字符串时遇到问题。你能帮帮我吗?

下面给出const char * iconst char ** o

语句“*o = temp”产生错误,表示“std::string”和“const char *”不适合。有什么问题?

int mytask(const char * i, const char ** o)

    std::string temp = std::string("mytask:") + i;

    *o = temp; //How to modify?

    return (0);

【问题讨论】:

使用std::copy() 你想做什么?要将temp 的内容复制到*o 吗?你为什么要传递char **mytask 是否也需要为字符串分配内存? 如果您告诉我们您想要做什么,将会很有帮助。看起来您正试图将 o 指向一个在您返回时将不再存在的对象。 为什么是const char **o?您正在尝试在功能中对其进行修改,那么为什么要const @Johnsyweb 连接..? 【参考方案1】:

首先,您尝试分配一个本地 char 指针并在调用函数中使用它,该函数已被销毁。因此,您应该这样做。假设内存分配给 o:

strcpy(*o,temp.c_str());

【讨论】:

【参考方案2】:

*o=temp 表示您将 o 指向指向 std::string 的指针,但是 o 是指向 char(或字符序列)的指针。这是不允许的。另一种方法是:temp=*o,因为 std::string 对象定义了当您将 char* 分配给它时会发生什么(将空终止的字符串复制到对象中)。如果您绝对必须从 temp 复制到 o* 指向的 char* 中。使用strcpy() 和std::string.c_str() strcpy(*o,temp.c_str())

【讨论】:

【参考方案3】:

在 C++ 中,以这种方式传递原始指针并不常见。

返回0 也没有多大作用。

我希望看到这样的东西:

std::string mytask(std::string const& i)

    return "mytask:" + i;


int main()

    std::string const number  '1' ;
    std::string const ret  mytask(number) ;

【讨论】:

【参考方案4】:

声明 strcpy(*o,temp.c_str()); 没用。我解决了这个问题 *o = temp.c_srt(); 反而。总之谢谢大家。

【讨论】:

以上是关于如何将字符串转换为字符? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将字符串转换为字符? [复制]

如何将 JSON 转换为字符串? [复制]

爪哇。如何将随机字符行转换为字符串? [复制]

如何将日期转换为字符串格式。? [复制]

如何将字符串日期转换为不同的字符串日期? [复制]

如何将十六进制字符串转换为字节数组? [复制]