c++ - 如何在 C++ 中将字符串传递给双引号

标签 c++ string double-quotes

背景:

我将 Matlab 与 C++ 一起用于绘图目的。在我目前的过程中,我需要使用 matlab 的函数将一个变量传递给 matlab 以及一个将在 matlab 环境中命名该变量的字符串。我调用的函数是 engPutVariable(ep, "varMatlab", varC++) 其中 ep 是类 (matlab)Engine 的对象,varC++ 是变量的名称在我传递的 C++ 中,当存储在 matlab 工作区中时, varMatlab 将是同一变量的名称。我使用的过程需要 4 行代码来传递一个变量,它为我传递的每个变量做同样的工作,因此我想编写一个函数,它的参数是 c++ 中的变量名称和变量名称需要在 ""引号中的 matlab。

问题:

由于该函数需要在“”(双引号)内传递变量名,我想传递一个字符串来代替引号内的 varMatlab。我尝试在字符串本身中插入“”,但在这种情况下似乎不起作用。任何帮助都会非常有帮助。

我写了下面的函数来做同样的事情,但是字符串 name 应该在我不知道如何传递的“”里面。

void putVar(double* var,int N, string name, Engine *ep){
    double row = N, col = N;
    mxArray *matlab = mxCreateDoubleMatrix(row, col, mxREAL);
    double *pa = mxGetPr(matlab);
    memcpy(pa, var, sizeof(double)*row*col);
    engPutVariable(ep, "name" , matlab);
}

最佳答案

插入“作为\”。由于"是字符串的特殊符号,需要进行转义。所以带引号的字符串"Hello World"在C++中是这样的

std::cout << "\"Hello World\"\n";

问候 托拜厄斯

关于c++ - 如何在 C++ 中将字符串传递给双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23004057/

相关文章:

c++ - 组合字符串 vector

c++ - 如何区分预处理器和编译器指令?

c++ - 显式运算符 bool 错误

java - 不保存数组中的单词

javascript - 将输入字符串分解为单个单词

c# - 如何避免 C# 字符串中的双引号转义?

c++ - dynamic_cast 返回空指针

c - 为字符串数组分配内存

r - 使用 write.table 时避免在列名和行名中使用引号

jsp - 由于在jsp文件中使用双引号引起的简单错误