如何在 ROOT,c++ 中连接字符串

How to concatenate string in ROOT,c++?

本文关键字:连接 字符串 c++ ROOT      更新时间:2023-10-16

我想连接两个字符串,我在我的程序中做了,就像String Filename = name+ "" + extension一样,扩展是我在此行上方读取的整数值,名称是已经定义的路径。

但是在 ROOT 中,我收到像Error: + illegal operator for pointer 1这样的错误

这里出了什么问题?还有其他方法吗?

如果extension是整数,则先将其转换为字符串。

std::string Filename = name+ "" + std::to_string(extension);

+""+什么都不做,顺便说一句

ROOT 中的 TString 类有一个名为 "Format" 的函数,您可以使用它来连接字符串,就像格式化 print 语句一样。下面是 Format 方法的文档:https://root.cern.ch/root/html/TString.html#TString:Format

这是有关格式如何工作的文档 http://www.cplusplus.com/reference/cstdio/printf/

我将继续假设"名称"是一个字符*。

Char const*  name = "john";
Char const* space = " ";

这里的名称和空格是指向字符数组的 2 个指针。

当您添加尝试将这 2 个指针相加时,编译器会尝试将 2 指针的值相加。这对编译器毫无意义。显然,您只能向指针添加偏移量。

对此的解决方案是确保您添加的 2 件事之一是 std::string 而不是"c 字符串"。