【发布时间】:2022-01-14 08:44:04
【问题描述】:
我正在尝试编写一个从字符串中提取注释的函数。例如,给定:
"this is a test //bread is great"
它返回:
"bread is great"
我尝试计算字符数,直到出现第一个“//”,然后修剪字符串中不需要的部分。
while(s[i] != '/' && s[i+1] != '/') {
newbase++;
i++;
}
它适用于第一个示例,但如果给我这样的字符串,我会遇到问题:
"int test = 2/3"
它应该返回""(一个空字符串),但它没有。没看懂。
【问题讨论】:
-
那
&&不应该是||吗? -
你可以先用
strchr查看字符串是否包含//。 -
如果在找到模式之前遇到字符串结尾,则应停止搜索。
-
可以使用strstr
-
假设输入字符串是
"Text // Comment\nMore Information"——其中有多少被视为“评论”?对于 C 编译器,只有“注释”才算作注释;您的代码似乎也可能包含“更多信息”。这取决于问题规范的要求。顺便说一句,对于 C 编译器来说,整个"/\\\n\\\n/\\\nComment\n"是一个注释。
标签: c