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

2024-12-04 10:43:14
推荐回答(3个)
回答1:

有三种方法可供使用。

为方便描述,以下设定两个指针分别为char *类型的p1和p2,其中,p1


1 按字节输出。

使用putchar从*p1一直输出到*p2。样例代码如下:

while(p1{
    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;

回答2:

尾指针减去头指针就是字符的长度len,你在用:
for(int i=0;i cout<<*(p+i);

回答3:

把指向尾巴的指针的值改成'\0',再printf输出头指针就行了