张三ccccccc 发表于 2021-8-15 22:30:23

指针与字符串,求大佬解答

/*****输入一段字符串,删除重复的字符,只保留一个,统计删除个数*****/
#include "stdio.h"
void main ()
{
        char a;
        char *p,*q;
        int del_count=0;
        p=q=a;
        gets(p);
        while (*p!='\0')
                {
                if(*p==*(p+1))//相邻字符串比较,若不相等条件为真
                        {
                        del_count++;   //统计删除字符的个数
                        }
                else
                {
                        *(q++)=*p;
                }
                p++;
                }
        *q='\0';
        puts(a);//这里改成puts(q);为什么就出错了,q不是指向a吗,求大佬解答。
        printf("\n is:%d",del_count);
}

wp231957 发表于 2021-8-15 22:51:49

q是指针,它始终在移动

张三ccccccc 发表于 2021-8-15 23:20:49

wp231957 发表于 2021-8-15 22:51
q是指针,它始终在移动

懂了懂了,此时q已经移动到了数组结尾,
在q=a 一下就好了
页: [1]
查看完整版本: 指针与字符串,求大佬解答