首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2013-01-05 
请问一字符串替换的问题 [解决办法]函数声明的时候参数应该用CHAR而不是INT[解决办法]void censor(char a[

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

热点排行