读书人

请教一字符串替换的有关问题

发布时间: 2013-01-05 15:20:39 作者: rapoo

请问一字符串替换的问题

[解决办法]
函数声明的时候参数应该用CHAR而不是INT
[解决办法]


void censor(char a[],int n)
{
char *p;

for(p=a;p<a+n-2;p++)
if((*p=='f')&&(*(p+1)=='o')&&(*(p+2)=='o'))
*p=*(p+1)=*(p+2)='x';
printf("%s",a);
}

[解决办法]
楼主思路基本没错,就是处理的有点问题

#include <stdio.h>

void censor_1(char s[])
{
int i;
for (i = 0; s[i] != '\0'; i++)
{
if (s[i] == 'f')
{
if (s[i+1] == 'o' && s[i+1] != '\0')


{
if (s[i+2] =='o' && s[i + 2] != '\0')
{
s[i] = s[i+1] = s[i+2] = 'x';
}
}
}
}
printf("%s\n", s);
}

void censor_2(char a[])
{
char *p;

for(p = a; *p != '\0'; p++)
{
if(*p=='f')
{
if (*(p+1) == 'o' && *(p+1)!='\0')
{
if (*(p+2) == 'o' && *(p+2) != '\0')
{
*p = *(p+1) = *(p+2)='x';
}
}
}
}

printf("%s\n",a);
}


int main()
{
char s1[] = "food fool";
char s2[] = "food fool";
censor_1(s1);
censor_2(s2);
return 0;
}

读书人网 >C语言

热点推荐