C语言,如何输出两个指针间的字符串
一个指向头,一个指向尾。有什么比较方便的方法的。忘记了。额。。for(i=0;i<=p-q;i++)printf("%c",*(q+i));...
一个指向头,一个指向尾。有什么比较方便的方法的。
忘记了。额。。
for(i=0;i<=p-q;i++)
printf("%c",*(q+i)); 展开
忘记了。额。。
for(i=0;i<=p-q;i++)
printf("%c",*(q+i)); 展开
3个回答
展开全部
有三种方法可供使用。
为方便描述,以下设定两个指针分别为char *类型的p1和p2,其中,p1<p2。
1 按字节输出。
使用putchar从*p1一直输出到*p2。样例代码如下:
while(p1<p2)
{
putchar(*p1++);
}
2 将p2位置作为字符串结束点,临时赋值为0,并在输出后恢复。
示例代码如下:
char t = *p2;//临时变量
*p2 = '\0'; //赋值结束符
printf("%s",p1);//输出
*p2 = t; //恢复
3 开辟一段内存,将需要输出的内容复制进去,然后再输出,不改变原本的p1,p2值。
示例代码如下:
char *t;
int len = p2-p1;
t = (char *)malloc(len+1);//注意留一个空间给结束符
memcpy(t,p1m len);
t[len] = '\0';
printf("%s", t);
free(t);
t = NULL;
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询