求教 不胜感激
麻烦问一下谢谢
#include <stdio.h>
#include <string.h>
void fun(char s[],int c)
{
int i=0;
char *p;
p=s;
while(*p)
{
if(*p!=c)
{s[i]=*p;
i++;}
p++;
}
s[i]=0;
}
main()
{
static char str[]="turbo c and borland c++";
char ch;
FILE *out;
printf("原始字符串:%s\n",str);
printf("输入一个字符:");
scanf("%c",&ch);
fun(str,ch);
printf("str[]=%s\n",str);
strcpy(str, "turbo c and borland c++");
fun(str, 'a');
out = fopen("out.dat", "w");
fprintf(out, "%s", str);
fclose(out);
}
-------------------------------------------------------------------------------
while(*p)
{
if(*p!=c)
{s[i]=*p;
i++;}
p++;
}
注意此处
落玉<bilike@vip. 12:34:44
这个程序是要把要求的字符从字符串中删除
落玉<bilike@vip. 12:35:20
为什么
while(*p)
{
if(*p!=c)
{s[i]=*p;
i++;}
p++;
}
就输出正确
落玉<bilike@vip. 12:35:57
为什么
while(*p)
{
if(*p!=c)
s[i]=*p;
i++;
p++;
}
这样会按原来字符串输出
求教 不胜感激