我正在尝试遍历字符串并划分由制表符分隔的单词。
if(argc == 1) {
while (argc == 1) {
scanf("%s", ent);
printf("<tr>");
while (sscanf(ent, "%[^\t]%n", piece, &n) == 1 ) {
printf("<td>%s</td>", piece);
ent += n;
}
printf("</tr>");
}
}
当我运行这段代码而不是<tr><td>a</td><td>b</td><td>c</td></tr>
我<tr><td>a</td></tr><tr><td>b</td></tr><tr><td>c</td></tr>
给标准输入 a\tb\tc\n 时得到的,这意味着在内部 while 循环结束并且外部循环运行一次之后位置会发生变化。内部while循环不应该遍历所有字符串吗?我只能使用sscanf或strtol作为字符串遍历分隔符。