c++ - 如何将 std::string 转换为不同类别的字符串?
问题描述
我从文件中读取数据,我想在函数中使用它的值。这是一个自定义函数,我正在为 Creo Parametric 编写 TOOLKIT。
好吧,该函数需要一个“xrstring”,但我有一个 std::string。
如何将一个转换为另一个?
我试过写 xrstring test_var = xrstring(std_var);
它不起作用。
//definition of xrstring
typedef const char *xrstring;
#define xstringuninit ((xrstring) 2)
#define xstringnil ((const char *) 1)
#define xwstringnil ((const wchar_t *) 1)
#define xwstringuninit ((const wchar_t *) 2)
//definition of pfcCreateStringParamValue
pfcParamValue_ptr pfcCreateStringParamValue (xrstring Value);
错误 C2664:“pfcParamValue_ptr pfcCreateStringParamValue(xrstring)”:无法将参数 1 从“std::string”转换为“xrstring”
解决方案
xrstring
您所说的 is或const char *
C 风格的字符串。
std::string
带有一个方便的函数来将 a 转换std::string
为 C 风格的字符串 -std::string::c_str()
因此,这是做你想做的事情的正确方法:
xrstring test_var = std_var.c_str();
此外,不存在直接const char *
投射std::string
。标准库字符串不仅仅是指向字符的指针。它还包含其他信息,例如字符串长度。
如果您想进行类似的转换,我个人建议您将其声明xstring
为一个类xrstring test_var = xrstring(std_var);
,并为转换创建一个合适的构造函数。
推荐阅读
- jquery - AJAX 错误响应中的 responseJSON 返回 undefined
- c++ - c++ – 消失的变量
- python - Unicode 字符串编码 Python
- r - 在背景中的反应值变化上绘制 ggplot,在非焦点选项卡上
- c++ - std::map C2678 二进制“<”:未找到采用“const sockaddr_in”类型的左侧操作数的运算符
- android - 仅在 CoordinatorLayout 中滚动时显示工具栏阴影
- c# - 如何对列表进行排序
通过对象中的另一个列表 - python - 来自多维张量的加权采样
- java - 无法实例化 org.apache.spark.api.java.JavaSparkContext
- c# - UWP + .appinstaller:如何检测新版本并提示用户并开始升级应用程序?