2010-02-09 67 views
1

我如何可以采取一个字符串(在这种情况下,它会从一个文件中加载),然后删除某些字符,并将其存储在数组中。用C删除某些字符,然后把剩下的阵列

例:

f.e.d.r.t.g.f

中删除 “”获得˚Fèd [R的Tg F IN数组,其中我可以操纵每个单独

+8

您可以通过编写一些代码做到这一点 - 你尝试过这么远吗? – 2010-02-09 23:30:16

+0

你能更具体一点:你是否删除了其他所有角色(比如说,因为你正在从WCHAR转换为char),还是一个特殊角色,或者......? – 2010-02-09 23:31:20

+0

我只是删除某个角色 – 2010-02-09 23:33:35

回答

2

的strtok()做到这一点很容易,如果

  1. 代码是在单个线程
  2. 如果源字符串的过程中改变了你不介意使用。
+0

+1这可能是明显的解决方案。另外,参考: http://www.gnu.org/s/libc/manual/html_node/Finding-Tokens-in-a-String.html – Skurmedel 2010-02-09 23:43:24

+0

您可以通过使用strtok_r()来解决第一个条件。 – 2010-02-09 23:52:32

+0

谢谢!这正是我所寻找的 – 2010-02-10 01:54:41

1

你也可以遍历他们,如果字符被拒绝进入下一个字符(或如果没有更多的chacters返回)。如果未被拒绝,则将其推入阵列。这将创建一个字符的副本,但除非你的字符串是巨大的,这不是一个问题。如果是,我的回答不会足够了:)

另一个变化将是读取字符串,直到遇到一个有效的字符,并返回它的功能。为了让下一个字符再次调用该函数。该函数需要维护传递给它的索引变量。如果到达字符串的末尾,您需要以某种方式指出它。

+1

如果您使用两个指针,一个用于写入位置,另一个用于读取,则可以使用相同的想法。一定要在最后加上\ 0。 – Joel 2010-02-09 23:37:01

+0

@Joel:嗯是的,...好的建议。 – Skurmedel 2010-02-09 23:38:53

4

只需遍历字符串,只复制感兴趣的字符,维护新数组中当前位置的索引。