小白发问,这个C语言任务该怎么做?求大佬帮助!!
出错行号:第七行 原因:应添加j++;
出错行号:第8行 原因:字符应用单引号括起
正确代码:
#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];
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;
}
#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'; //有更改,"\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;
}
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;
}