【发布时间】:2011-07-30 10:26:00
【问题描述】:
我有一个 C 字符串数组:
char test[6] = {'\n', 't', 'e', 's', 't', '\0'}
我想测试字符串是否以空白字符(\n、\t、\r)开头,如果是,则重新排列数组,以便将非空白字符移到数组的前面并对于每个需要删除的空白字符,将 cstring 缩短 1。
所以如果我从一个看起来像这样的字符串开始:
\n, \t, t, e, s, t, \0
or
\r, t, e, s, t, \0
在函数之后,两个数组将如下所示:
t, e, s, t, \0
t, e, s, t, \0
我有两个问题。我的第一个是我对特殊字符的条件测试没有正常工作
int idx = 0;
if (test[idx] != '\n' || test[idx] != '\r' || test[idx] != '\t')
return;
即使它确实以这些特殊字符之一开头也会返回。
不过,这似乎也需要进行重大改进。
然后,我不知道如何剪辑字符串。例如,如果字符串以空格字符开头,我基本上需要删除该字符,将其他字符向上移动,然后每次将字符串缩短一个。
基本上,我正在为如何做到这一点的逻辑而苦苦挣扎。
非常感谢任何和所有的帮助。提前致谢!
【问题讨论】: