|
发表于 2015-12-2 02:09:47
|
显示全部楼层
- #include <stdio.h>
- #include <string.h>
- int main()
- {
- char c,str[80];
- 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[80],*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
- }
复制代码 |
|