注册 登录
编程论坛 C++教室

谁能帮助我一下。

战士 发布于 2008-05-26 12:43, 514 次点击
求助:
把一个字符串中所有\t转换成四个*,\t的个数不定。 有会的帮我写下。
6 回复
#2
p1s2008-05-26 15:42
用循环,字符串也是字符数组,所以替换为4个*的时候要记得把后面的字符向后移动。建议做一次完整的扫描,把位置都记录下来,移动的时候一次到位,然后把空余的位置替换成*。不要替换一次移动一次,那样效率较低。
#3
bibingyan2008-05-26 23:05
用KCM模式匹配!可以提高运行效率
#4
flyue2008-05-27 14:17
这个有用:

#include <stdio.h>
#include <string.h>

int main()
{
    char str[] = "abc\tcba\tsdfe\tdfg\tdfg";
    char strOut[1024] = {0};
    int slen = strlen(str);

    for(int i = 0; i < slen; i++)
    {
        if(str[i] == '\t') sprintf(strOut, "%s****", strOut);
        else if(str[i] == 0) break;
        else sprintf(strOut, "%s%c", strOut, str[i]);
    }
    printf("%s\n", strOut);

    return 0;
}
#5
战士2008-05-28 01:05
谢谢了。
#6
战士2008-05-28 01:07
if(str[i] == '\t') sprintf(strOut, "%s****", strOut);

  else sprintf(strOut, "%s%c", strOut, str[i]);
这两句代表输出的是什么?
#7
战士2008-05-28 01:08
KCM模式是什么?
1