求助一道C语言关于指针的问题。

编程序将给定字符串中指定字符删除。要求删除指定字符后原字符串不能留下空位置,字符串和指定字符均由键盘输入。
指针和数组

第1个回答  2006-11-22
#include<stdio.h>

void main()
{
char e[100],ch,*p;
scanf("%s\n",e);
scanf("%c",&ch);
p=&e[0];
while(*p&&*p!=ch)
p++;
if(*p!=0)
{
while(*p)
*p=*(++p);
*(--p)='\0';
}
else
{
printf("No found!");
}
printf("%s\n",e);

}
先从键盘读入字符串和查找的字符,然后用字符串指针p指向字符串首地址,再进行查找,找到就把后面的字符向前移动,最后在补上一个结束符就可以了!

c语言这几道题 关于指针的 望大神解答
1、D选项,*x本身就错误,因为x是int类型,没法使用*操作符。2、A之所以错是因为代码中有一句q=NULL,也就是说q是一个空指针了,你再向里面写东西就错了,而且你在vc6.0中可以试一下,马上会出现一条0xc000 0005的写异常。。3、是的,你不管给它赋值多少都是4的。。就好比一个4平方米的房子...

c语言指针的赋值问题
在C语言中,指针是一个变量,其特殊之处在于它存储的是其他变量的地址,而不是值本身。指针使我们能够间接地访问和修改变量的值。指针的赋值过程 当我们为指针变量赋值时,实际上是将其指向一个变量的内存地址赋给它。这个过程分为两步:首先确定变量的地址,然后将这个地址赋给指针变量。例如,如果我们...

C语言关于指针的一题。
\/*答案是6,过程如下*\/ include<stdio.h> main(){ int a[]={2,4,6},*prt=&a[0],x=8,y,z; \/*定义整形数组a,把2、4、6依次存入数组a的前三个地址 中,定义一个整形指针prt,并把数组a中首地址的值赋值给 prt指向的地址中*\/ for(y=0;y<3;y++)z=(*(prt+y)<x)?*(pr...

C语言指针问题。
(1) ++(*pointer)是先取值,再自增,当前pointer指向的是位置arr[3],取值后是2,*pointer的结果是2,2再自增,当然会得出3。值得说明的是,这个括号是可以省略的,此处括号只起到增加程序可读性的作用。(2)*(pointer-2)是先移动指针,再取值。pointer-2是把指针从当前位置arr[3]回退两...

一道C语言题,关于指针的,有语句:int a[10],则哪一项是对指针变量p的正...
B。BD是指针类型,数组名是地址,因此选B。

c语言问题,关于指针的问题
一、比如我们定义一个int型指针变量。int *p=NULL;初值为空。那么当执行while(p);时,只有p==NULL时,while循环才会结束。所以如果我们写while(p);printf。。。;那么只有当p为空时,后面的printf才会执行。否则就一直循环,这样我们就能判断p为空了。同理!p,自然就能判断p不为空了。二、p...

几道C语言指针方面的问题
1. int *a;表示声明一个指针变量a,注意a的值是个地址,不是值,这样才表示一个值(前提是a确实指向一个值,不然的话,会是一个随机数):*a,int a=10,*b=&a;表示的是把a的地址给指针变量b。2.B,其中D是错的,因为楼主只是声明一个指针变量,你没有初始化,也就是没有分配内存,要是...

c语言指针问题
(2),对于*P1=*P2 操作之前,一定要先将P1和p2先指向变量。还有*p=3之前,也要先把p指向一个变量。指针就是一个指向地址的变量,使用之前需要先给它赋值,也就是先将将一个变量的地址赋值给它,这个时候指针里面存的就是这个变量的地址。理解了指针的概念,上面这些问题就好理解了~...

C语言 关于指针的选择 求教高手
①答案是为B ②*p1=*p2;的意思:【p1指向的地址的内存块的值为p2地址指向内存块上的值】③p1=p2;的意思:【p1指向的地址为p2指向的地址】④为了加深你对指针的理解,我们可以这么认为:p1是一张纸条,上面写着房间号,p2也是。p1=p2;是把p1纸条上的房间号擦掉,改成p2纸条上的房间号。p1=*p2...

C语言关于指针的问题*++p与*(p--)
printf("%d ",*++p);\/\/++和*都是从右往左结合两者优先级一样所以和上句话一样*p=pa2]printf("%d ",*(p--));\/\/后-- 也就是先打印*p 在自减, 所以还是打印p[2] p -- p=p-1 *p=a[1]p+=3;p=p+3 所以 *p=a[4]printf("%d %d ",*p,*(a+3)); \/\/a+3 就是a...

相似回答