当前位置:  开发笔记 > 编程语言 > 正文

从C字符串中删除多余的空格?

如何解决《从C字符串中删除多余的空格?》经验,为你挑选了2个好方法。

我已经在C字符串数组中读了几行文本.这些行有任意数量的制表符或空格分隔的列,我试图弄清楚如何删除它们之间的所有额外空格.最终目标是使用strtok来分解列.这是列的一个很好的例子:

Cartwright   Wendy    93
Williamson   Mark     81
Thompson     Mark     100
Anderson     John     76
Turner       Dennis   56

如何消除列之间的所有空格或制表符,以便输出看起来像这样?

Cartwright Wendy 93

或者,我可以用不同的字符替换列之间的所有空格,以便使用strtok吗?像这样的东西?

Cartwright#Wendy#93

编辑:多个很棒的答案,但必须选择一个.谢谢大家的帮助.



1> Chris Lutz..:

如果我可以表达"你做错了"的意见,为什么不在阅读时消除空白呢?使用fscanf("%s", string);读一个"字"(无空格),然后读取空白.如果是空格或制表符,请继续阅读一行"数据".如果是换行符,请启动新条目.在C语言中,最简单的方法是将数据转换为可以尽快使用的格式,而不是尝试进行繁重的文本操作.


回应@Robert,将`fgets`与`sscanf`结合使用.

2> hhafez..:

为什么不strtok()直接使用?无需修改输入

所有你需要做的就是重复,strtok()直到你获得3个非空间代币,然后你就完成了!

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有