YjingA 发表于 2015-12-1 23:44:43

指针求解(已解决)

本帖最后由 YjingA 于 2015-12-2 12:47 编辑

是不是指针不能这么用啊:mad: :mad: :mad:

machimilk 发表于 2015-12-2 02:09:47



#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

}

YjingA 发表于 2015-12-2 12:40:19

machimilk 发表于 2015-12-2 02:09


非常感谢{:5_106:}{:5_106:非常感谢{:5_106:}{:5_106:},但我不知道怎么发悬赏

atmo 发表于 2015-12-2 14:05:37

非常感谢
页: [1]
查看完整版本: 指针求解(已解决)