zzk5015377 发表于 2022-3-10 17:19:33

关于自定义函数 字符串

11.设计函数,将字符数组中指定的字符删除。
voiddel_char(char *s,charc);

我这个咋不行呢 哪里不规范了

#include<stdio.h>
void del_char(char *s,char c)
{
   int i,j=0;
   for(i=0;i!='\0';i++)
   {
       if(s==c)continue;
       s=s;
   }
}
main()
{
      int i;
      char c='b';
      char b="abc";
      del_char(b,c);
      for(i=0;i<3;i++)
      printf("%c",b);
}

isdkz 发表于 2022-3-10 17:36:38

本帖最后由 isdkz 于 2022-3-10 17:52 编辑

你的 i 初值为 0,并不等于 '\0',所以循环体并没有执行。

#include<stdio.h>
void del_char(char *s,char c)
{
   int i,j=0;
   for(i=0;s!='\0';i++)         // 注意这里
   {
       if(s==c)continue;
       s=s;
   }
   s = '\0';                        
}
main()
{
      int i;
      char c='b';
      char b="abc";
      del_char(b,c);
      for(i=0;i<3;i++)
      printf("%c",b);
}

yzzc 发表于 2022-3-10 17:44:35

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
void del_char(char* s, char c)
{
    int i, j = 0;
    for (i = 0; s; i++)   //这里的判断条件要改成s,改成s的意思是判断是否已经到底数组末尾
    {
      if (s == c)continue;
      s = s;
    }
    s = 0;//循环结束记得手动在那里添给'\0给数组结尾
}
int main()
{
    int i;
    char c = 'b';
    char b ="abc" ;   //记住,要大于你所给字符串个数一个,因为系统要自动给他添一个'\0'
    del_char(b, c);
    for (i = 0; i < 3; i++)
      printf("%c", b);
    return 0;
}

贾政景 发表于 2022-3-10 19:40:52

代码里面错误太多了,自己检查一下啊{:10_277:}
页: [1]
查看完整版本: 关于自定义函数 字符串