我已将几行文本读入 C 字符串数组。这些行有任意数量的制表符或空格分隔的列,我想弄清楚如何删除它们之间的所有额外空格。最终目标是使用 strtok 来分解列。这是列的一个很好的例子:
Cartwright Wendy 93 Williamson Mark 81 Thompson Mark 100 Anderson John 76 Turner Dennis 56
如何消除列之间的所有空格或制表符,使输出看起来像这样?
Cartwright Wendy 93
或者,我可以只用不同的字符替换列之间的所有空格以使用 strtok 吗?是这样的吗?
Cartwright#Wendy#93
编辑: 多个很好的答案,但必须选择一个。感谢大家的帮助。
最佳答案
如果我可以表达“你做错了”的意见,为什么不在阅读时消除空格呢?使用 fscanf("%s", string);
读取一个“单词”(非空白),然后读取空白。如果是空格或制表符,请继续读入一“行”数据。如果是换行符,则开始一个新条目。在 C 中,将数据尽快转换为您可以使用的格式可能是最简单的,而不是尝试进行繁重的文本操作。
关于c - 从 C 字符串中删除多余的空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1458131/