更为灵活的方法,通过指针引用字符串

padding: 0px; overflow-wrap: break-word; clear: both; text-indent: 21px; color: rgb(24, 30, 51); font-family: PingFangSC, 微软雅黑, 黑体, Arial, Helvetica, sans-serif; font-size: 18px; background-color: rgb(255, 255, 255);">在之前的学习中,我们已经大量地使用了字符串,例如在printf函数中输出一个字符串,使用scanf函数读入一个字符串等等。在本节中,我们将介绍一种更为灵活的方法,通过指针引用字符串。

padding: 0px; overflow-wrap: break-word; clear: both; text-indent: 21px; color: rgb(24, 30, 51); font-family: PingFangSC, 微软雅黑, 黑体, Arial, Helvetica, sans-serif; font-size: 18px; background-color: rgb(255, 255, 255);">更为灵活的方法,通过指针引用字符串

我们先来看这样一个例子,我们要输出一个字符串Hello,world,应该怎样编写程序

例7-5】使用字符数组输出字符串

#include<iostream.h>

int main()

{

char a[]="Hello, world";

cout<<a<<endl;

return 0;

}


上例是传统的方法,我们学习了指针之后,还可以使用字符指针变量来引用字符串:

例7-6】使用字符指针变量来引用字符串

#include<iostream.h>

int main()

{

char *p="Hello, world";

cout<<p<<endl;

return 0;

}


在本例中,我们没有定义字符数组,只定义了一个char*类型的变量,在C++语言中,对于字符串常量是按照字符数组来处理的,在内存中开辟了一个字符数组来存放该字符串常量,但这个字符数组没有名字,因此只能通过指针变量来引用。对字符指针变量p的初始化,实际上是把字符串第一个元素的地址赋值给p,使p指向字符串的第一个字符。

对于字符串中字符的存取,可以用下标方法,也可以用指针方法,我们来看一个例子:

例7-7】将字符串a复制给字符串b

#include<iostream.h>

int main()

{

char a[]="I love CHINA!",b[20],*p1,*p2;

p1=a;p2=b;

for(;*p1!='\0';p1++,p2++)

*p2=*p1;

*p2='\0';

p1=a;

p2=b;

cout<<"ais:"<<p1<<endl;

cout<<"bis:"<<p2<<endl;

return 0;

}


程序运行结果:

a is: I love CHINA!

b is: I love CHINA!


通过指针引用字符串,实际上和通过指针引用数组类似,借用指针,我们能够更加方便灵活地操作字符串。


Top