是否可以配置 C++ 编译器来寻找另一个字符串文字标识符?

问题描述 投票:0回答:1

现在是 2023 年,我认为在文本和标记等其他语言中如此常见的字符串标识符很愚蠢。

C++ 使用这个符号:“ 表示字符串的开头和结尾。

有没有办法让这个符号成为别的东西?例如 \xac 也是一个 1 字节的字符。例如,如果字符串标识符不是双引号,那么使用 system() 函数会更容易使用,双引号会派上用场。

这也适用于像 php 这样的东西,我使用 echo '';用单引号,这样我就可以用双引号在里面写一些东西,但有时我需要能够同时使用双引号和单引号。但是我们真的仅限于引号和双引号作为我们的分隔符吗?我们不能使用或设置一个没有出现在其他地方的自定义角色吗?

如果可行,请告诉我怎么做。如果这是白日梦,也请告诉我。

//Example: (I know the character I'm about to use is 3-bytes (\xe2\x81\x91) but just for demonstration...
#include <iostream>
int main() {

  std::cout << ⁑Hello world!\n⁑;
  system(⁑echo -e '"hello\nworld"' | grep 'hello' | sed s/'"hello'/'"Hello!"'/⁑);

return 0;
}

谢谢

我试着在谷歌上搜索了很多页面(分页?),但我什至找不到问这个问题的人。

c++ compiler-construction
1个回答
1
投票

如果我正确理解你的问题,这可以通过使用原始字符串文字轻松解决,例如:

std::string myStr = R"('Using single quotes', "double quotes")";

这些括号内从 "()" 的任何内容都将被视为字符串,您可以在该字符串中写入任何您想要的内容,甚至可以编写不带 \ 的多行字符串。请注意,像 \n\r 这样的符号也不会被视为“换行符”或“返回插入符号”,而是按照它们所写的那样处理。

© www.soinside.com 2019 - 2024. All rights reserved.