指针求解(已解决)
本帖最后由 YjingA 于 2015-12-2 12:47 编辑是不是指针不能这么用啊:mad: :mad: :mad:
#include <stdio.h>
#include <string.h>
int main()
{
char c,str;
void delchar(char *p,char c);
printf("请输入要删除的字符:\r\n");
scanf("%c",&c);
printf("请输入要删除字符的字符串:\r\n");
scanf("%s",&str);
delchar(str,c);
printf("删除后的字符串为:\r\n%s\r\n",str);
system("pause");
return 0;
}
void delchar(char *p, char c)
{
char str,*q,*s;
q=str;
s=p;
while(*s !='\0')
{
if (*s==c)
{
s++;
}
else
{
*q=*s;
s++;
q++;
}
}
*q='\0';
strcpy(p,str);//这里p指针已经往后挪动了,
//如果这样等于把asdasd删除a后剩下的sdsd和原来的
//asdasd连接到一起了,所以结果是asdasdsdsd
//要解决这个问题再定义一个指针s,指向p,挪动指针的时候
//挪动s别挪p
}
machimilk 发表于 2015-12-2 02:09
非常感谢{:5_106:}{:5_106:非常感谢{:5_106:}{:5_106:},但我不知道怎么发悬赏 非常感谢
页:
[1]