编程论坛
注册
登录
编程论坛
→
C++教室
谁能帮助我一下。
战士
发布于 2008-05-26 12:43, 514 次点击
求助:
把一个字符串中所有\t转换成四个*,\t的个数不定。
有会的帮我写下。
6 回复
#2
p1s
2008-05-26 15:42
用循环,字符串也是字符数组,所以替换为4个*的时候要记得把后面的字符向后移动。建议做一次完整的扫描,把位置都记录下来,移动的时候一次到位,然后把空余的位置替换成*。不要替换一次移动一次,那样效率较低。
#3
bibingyan
2008-05-26 23:05
用KCM模式匹配!可以提高运行效率
#4
flyue
2008-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