文本文件的某些行包含以开放方括号开头的行,具有可变数量的字符,后跟一个紧密的方括号,然后是一些其他文本
例如:
[ABC] why is the sky green?
[DEFG] Ou sont les Niegedens d'antan?
[I can't code C] (... obviously)
如何获得方括号之间的文字? (我想要printf
)
答案 0 :(得分:1)
逐行阅读,将第一个字符与[
进行比较,并使用strchr
找到结束的方括号]
。
对于任意长行,您可以使用fgets
读入临时缓冲区,并检查行终止符以避免意外捕获位于行中间的括号中的文本。要打印出来,您可能希望随时打印(并在下一行或遇到]
时停止),或者在您自己的字符串构建器实现中缓冲它。
答案 1 :(得分:1)
最简单的方法可能是扫描集转换:
char line[256];
while (fgets(line, sizeof(line), stdin)) {
char string[256];
sscanf(line, "[%255[^]]", string);
printf("%s\n", string);
}