题目:从键盘输入一个字符串与一个指定字符,将字符串中出现的指定字符全部删去。
#include
int main()
{
int prochaa(char *a,char c);
char b[80],c;
printf("input b:");
scanf("%s",b);
printf("input d:");
scanf("%s",&c);
prochaa(b,c);
printf("%s\n",b);
}
int prochaa(char *a,char c)
{
char *p;
for(p=a;*p!='\0';p++)
{
if((*p)!='c')
{
*a++=*p;
}
}
printf("error");
return 0;
}
这是用xcode编写的,程序无误,但输入字符串后不进入for循环,问题出在哪里?
#include
#include
int prochaa(char *a,char c);
int main()
{
char b[80],c;
printf("input b:");
scanf("%s",b);
getchar();//
printf("input d:");
scanf("%c",&c);//
prochaa(b,c);
printf("%s\n",b);
return 0;
}
int prochaa(char *a,char c)
{
char *p;
for(p=a;*p!='\0';p++)
{
if((*p)!=c)
{
*a++=*p;
}
}
*a='\0';
}
输出[bpf1@test65 c]$ ./3
input b:helloworld
input d:o
hellwrld
[bpf1@test65 c]$
if((*p)!='c')
->
if((*p)!=c)
改过之后也不行啊。还是输入字符串之后输出空白的。
scanf("%s",b);和scanf("%s",&c);是不是有点不一样
执行完函数体之后应该返回一个串,而不是返回0,这样你试一试
*a++=*p;
什么意思
for(p=a;*p!='\0';p++) 已经在遍历字符串 了