请问一字符串替换的问题
[解决办法]
函数声明的时候参数应该用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;
}