0

文本文件的某些行包含以左方括号开头的行,具有可变数量的字符,后跟右方括号,然后是一些其他文本

例如:

 [ABC]  why is the sky green?  
 [DEFG]  Ou sont les Niegedens d'antan?  
 [I can't code C]  (... obviously)

如何获取方括号之间的文本?(我想要printf

4

2 回答 2

1

逐行阅读,将第一个字符与 进行比较[,然后使用strchr定位右方括号]

对于任意长的行,您可以使用fgets读取到临时缓冲区,并检查行终止符以避免意外捕获行中间括号中的文本。要打印出来,您可能希望边走边打印(并在下一行或遇到时停止]),或者在您自己的字符串生成器实现中将其缓冲。

于 2012-07-11T02:58:14.707 回答
1

最简单的方法可能是扫描集转换:

char line[256];

while (fgets(line, sizeof(line), stdin)) {
    char string[256];

    sscanf(line, "[%255[^]]", string);
    printf("%s\n", string);
}
于 2012-07-11T02:58:37.480 回答