小白发问,这个C语言任务该怎么做?求大佬帮助!!

2024-11-27 16:37:00
推荐回答(3个)
回答1:

出错行号:第七行  原因:应添加j++;

出错行号:第8行 原因:字符应用单引号括起

正确代码:

#include

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];

           j++;   //第一个错误

   }

   

   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;

}

回答2:

#include

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'; //有更改,"\0"是字符串,'\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;

}

回答3:

#include
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] = s[i]; 每次赋值后,j应该自加
s[j] = '\0'; //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;
}