在C++中可以用3种方法访问一个字符串。
用字符数组存放一个字符串
【例1】定义一个字符数组并初始化,然后输出其中的字符串。
- #include <iostream>
- using namespace std;
- int main( )
- {
- char str[]="I love CHINA!";
- cout<<str<<endl;
- return 0;
- }
#include <iostream> using namespace std; int main( ) { char str[]="I love CHINA!"; cout<<str<<endl; return 0; }
运行时输出:
I love CHINA!
用字符串变量存放字符串
【1】定义一个字符串变量并初始化,然后输出其中的字符串。
- #include <string>
- #include <iostream>
- using namespace std;
- int main( )
- {
- string str="I love CHINA!";
- cout<<str<<endl;
- return 0;
- }
#include <string> #include <iostream> using namespace std; int main( ) { string str="I love CHINA!"; cout<<str<<endl; return 0; }
用字符指针指向一个字符串
【例2】定义一个字符指针变量并初始化,然后输出它指向的字符串。
- #include <iostream>
- using namespace std;
- int main( )
- {
- char *str="I love CHINA!";
- cout<<str<<endl;
- return 0;
- }
#include <iostream> using namespace std; int main( ) { char *str="I love CHINA!"; cout<<str<<endl; return 0; }
对字符串中字符的存取,可以用下标方法,也可以用指针方法。
【例3】将字符串str1复制为字符串str2。
定义两个字符数组str1和str2,再设两个指针变量p1和p2,分别指向两个字符数组中的有关字符,通过改变指针变量的值使它们指向字符串中的不同的字符,以实现字符的复制。
- #include <iostream>
- using namespace std;
- int main( )
- {
- char str1[]="I love CHINA!",str2[20],*p1,*p2;
- p1=str1;p2=str2;
- for(;*p1!='\\0';p1++,p2++)
- *p2=*p1;
- *p2='\\0';
- p1=str1;p2=str2;
- cout<<"str1 is: "<<p1<<endl;
- cout<<"str2 is: "<<p2<<endl;
- return 0;
- }
#include <iostream> using namespace std; int main( ) { char str1[]="I love CHINA!",str2[20],*p1,*p2; p1=str1;p2=str2; for(;*p1!='\\0';p1++,p2++) *p2=*p1; *p2='\\0'; p1=str1;p2=str2; cout<<"str1 is: "<<p1<<endl; cout<<"str2 is: "<<p2<<endl; return 0; }
运行结果为:
str1 is: I love CHINA!
str2 is: I love CHINA!
图6.19
这个例子用来说明怎样使用字符指针。其实,对例6.13来说,用string变量来处理是十分简单的:
string str1=″I love CHINA!″,str2; //定义string变量
str2=str1; //将str1复制到str2