不知道哪里错了,帮忙看一下喽

  1. #include <stdio.h>
  2. void fun(char  *s)
  3. {
  4.   int  i, j;
  5.   for (i=0, j=0; s[i]!='\0'; i++)
  6.     if (s[i]>='0' && s[i]<='9')
  7.         s[j] = s[i];
  8.   s[j] = "\0";
  9. }
  10. int main()
  11. {
  12.   char  item[80];
  13.   printf("\nEnter a string :");
  14.   gets(item);
  15.   printf("\n\nThe string is : %s\n", item);
  16.   fun(item);
  17.   printf("\n\nThe string of changing is : %s\n", item);
  18.   return 0;
  19. }

fun函数里缺少j++,在s[j]=s[i]后要增加j++

void fun(char  *s)
{
  int  i, j;
  for (i=0, j=0; s[i]!='\0'; i++)
    if (s[i]>='0' && s[i]<='9')
        s[j++] = s[i];
  s[j] = "\0";
}

 

#include <stdio.h>
void fun(char  *s)
{
  int  i, j;
  for (i=0, j=0; s[i]!='\0'; i++)
    if (s[i]>='0' && s[i]<='9')
        s[j] = s[i];
  //s[j] = "\0";
}
int main()
{
  char  item[80];
  printf("\nEnter a string :");
  gets(item);
  printf("\n\nThe string is : %s\n", item);
  fun(item);
  printf("\n\nThe string of changing is : %s\n", item);
  return 0;
}

调整代码如上,就能正常运行。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632