给你简单改了一下,加了点说明,供参考,有不明白的再问吧:
#include
#define SZ_SIZE 80
void delchar(const char sx[], char c, char (&szAft)[SZ_SIZE]);
int main(void)
{
char c;
char sx[SZ_SIZE] = {0};
char sAfter[SZ_SIZE] = {0};
int i=0;
printf("Input a string: ");
// while(sx[i]!='\n'){
// scanf("%s",&sx[i]);
// i++;
// }
gets(sx); // 换用gets来接收字串比较方便
printf("Input a char: ");
// scanf("%s",&c);
scanf("%c",&c); // 字符格式化应该是%c
delchar(sx,c, sAfter);
printf("After deleted, the string is: %s\n", sAfter);
return 0;
}
// szAft: 返回串.
void delchar(const char sx[], char c, char (&szAft)[SZ_SIZE])
{
int j = 0;
while(*sx!='\0' && j<(SZ_SIZE-1)/*防止越界*/)
{
// char str[80]; // 这句删除
if(*sx != c)
szAft[j++] = *sx;
++sx;
}
szAft[j]='\0';
}
附个测试结果吧:
Oh, no!
你这程序是要闹哪样?
字符数组和单个字符数组中的元素都没有弄明白呢
我的建设是好好拿一本C语言入门书读读吧。
就是这次告诉了,以现在的水平来看。。。
建设还是从头好好读一遍书