C++中的双引号字符串

3
如何将带有空格的字符串转换为双引号字符串。 例如: 我得到字符串
c:\program files\abc.bat

我希望将这个字符串转换为 "c:\program files\abc.bat",但仅当字符串中存在空格时才转换。

它是一个 std::string 还是 const char* - kennytm
如果字符串中已经有双引号,您需要发生什么?这是否取决于字符串中是否有空格? - dave4420
3个回答

5
假设 STL 字符串 s 包含您想要检查是否有空格的字符串:
if (s.find(' ') != std::string::npos)
{
  s = '"' + s + '"';
}

使用'"'代替"\""是否更高效? - Mathias Soeken

2

搜索字符串中的空格,如果找到,就在字符串前面和后面添加“\"。这将是一个转义引号。


在将字符串用“”括起来之前,搜索已有的“并在它们前面加上\。这将处理带有“的字符串。 - Thomas Matthews

0
std::string str = get_your_input_somehow();

if (str.find(" ") != std::string::npos) {
  str = "\"" + str + "\"";
}

那不应该是 str.find(' ') != std::string::npos) 吗? - Manuel
如果空格在开头,则返回0。 - kennytm
@Manuel——糟糕——太晚了——你说得完全正确!(正在编辑) - Drew Hall

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接