【发布时间】:2014-10-05 05:05:00
【问题描述】:
string code;
cout << "Enter code\n";
getline(cin, code, '~');
size_t comment = code.find('/*');
size_t second = code.find('*/', comment);
size_t first = code.rfind('/*', comment);
code.erase(first, second - first);
cout << code << '\n';
输入
/*comment
comment*/
okay~
输出
//
okay
=============
程序会删除 /* */ 之间的所有内容,但不会删除 / /。我错过了什么吗?
【问题讨论】:
-
我很惊讶您没有收到关于将两个字符放在字符文字中的编译器警告。您应该使用双引号 (
") 来表示您要查找的字符串。 -
并且您应该非常仔细地测试包含不完整 cmets 或包含
/*的 cmets 的输入。
标签: c++ string visual-c++ erase