C++ 我将一个const char*的字符串转换为string出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 我将一个const char*的字符串转换为string出错相关的知识,希望对你有一定的参考价值。

直接写没错,但是我放在单独一个类中就出错了,传进函数中的一个const char*
std::string strplistName = plist; //断点调试时提示读取字符串的字符时出错

//"/"最后出现的位置
int ifirst = strplistName.find_last_of("/");

//"."最后出现的位置
int ilast = strplistName.find_last_of(".");

//需要取得的字符串的长度
int i = ilast - ifirst - 1;

//将取得的字符串赋值给新字符串
std::string newstrplistName = "";
newstrplistName.assign(strplistName, ifirst + 1, i);

newstrplistName += "01.png";

//将plistName转换为char
const char *newcplistName = newstrplistName.data();

return newcplistName;

参考技术A newstrplistName是局部变量吧?返回出去当然有问题。直接返回string就是了 参考技术B   请把出问题的代码贴出来,大家帮你看看 参考技术C 请提供比较完全的程序才方便调试啊

如何在 C++ 中将字符串转换为 const char[]

【中文标题】如何在 C++ 中将字符串转换为 const char[]【英文标题】:How to convert string to const char[] in c++ 【发布时间】:2021-07-11 19:22:51 【问题描述】:

我正在为 Vex 机器人开发一个 C++ 项目,我正在使用一个采用 const char[] 的函数,但是为了显示一个整数,没有这样的函数可以转换为 const char[],所以有没有办法去做。所有搜索结果都显示了如何转换为const char*,顺便说一下“字符串”的类型为const char[]

编辑: 我还需要转换字符串以连接两个字符串(但最终只是将两个字符串都转换为 std::string 然后再转换回 const char[])

【问题讨论】:

接受const char[] 的函数将接受const char* std::string::c_str()函数 谢谢,成功了。 (两者都有效) 这能回答你的问题吗? How to convert a std::string to const char* or char* 我也发现 * string.c_str() 也有效 【参考方案1】:

std::string 有函数 c_str()(自 C++11 起具有同义词 data())来获取指向底层空终止字符数组的指针:

std::string const myString"***";
const char* cstr = myString.c_str();
const char* data = myString.data();

【讨论】:

以上是关于C++ 我将一个const char*的字符串转换为string出错的主要内容,如果未能解决你的问题,请参考以下文章

C++ 将 char 转换为 const char*

C++ AVR 附加到 const char *

C ++没有从字符串到const char *的可行转换* [重复]

c++ uint32 如何转 const char

C++ 从 'char' 到 'const char' 的无效转换

将标记转换为 char* const* 时,使用 boost 标记字符串失败