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