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

 我来答
pe...5@33sn.cc
2017-05-19 · 超过54用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:94万
展开全部

有三种方法可供使用。

为方便描述,以下设定两个指针分别为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;

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式