C语言,如何输出两个指针间的字符串

一个指向头,一个指向尾。有什么比较方便的方法的。忘记了。额。。for(i=0;i<=p-q;i++)printf("%c",*(q+i));... 一个指向头,一个指向尾。有什么比较方便的方法的。
忘记了。额。。
for(i=0;i<=p-q;i++)
printf("%c",*(q+i));
展开
 我来答
风若远去何人留
推荐于2017-10-05 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450131
专业C/C++软件开发

向TA提问 私信TA
展开全部

有三种方法可供使用。

为方便描述,以下设定两个指针分别为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;
来自:求助得到的回答
古树上的毛毛虫
推荐于2017-09-28
知道答主
回答量:44
采纳率:0%
帮助的人:31.5万
展开全部
尾指针减去头指针就是字符的长度len,你在用:
for(int i=0;i<len;i++)
cout<<*(p+i);
来自:求助得到的回答
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuan6161
2013-03-13
知道答主
回答量:23
采纳率:0%
帮助的人:7.4万
展开全部
把指向尾巴的指针的值改成'\0',再printf输出头指针就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式