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;
如何在 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 ++没有从字符串到const char *的可行转换* [重复]