可以利用一个字符型的指针处理字符串,其过程与通过指针访问数组元素相同。使用指针可以简化字符串的处理,是程序员处理字符串常用的编程方法。
►C++允许定义一个字符指针,初始化时指向一个字符串常量,一般形式为:
char *p="C Language";
//或者
char *p;
p="C Language";
初始化时,p存储了这个字符串首字符地址4000,而不是字符串常量本身,称p指向字符串。
通过字符指针可以访问字符串。例如:
char str[]="C Language", *p=str; //p指向字符串的指针
cout<<p<<endl; //输出:C Language
cout<<p+2<<endl; //输出:Language
cout<<&str[7]<<endl; //输出:age
通过字符指针遍历字符串
char str[]="C Language", *p=str; //p指向字符串的指针
while (*p!='\0') cout<<*p++;
指针访问字符串举例
#include <iostream>
using namespace std;
int main()
{
char str[100],*p=str;
cin>>str; //输入字符串
while (*p) p++; //指针p指向到字符串结束符
cout<<"strlen="<<p-str<<endl;
return 0;
}
请记住,指针可以指向数组,使得数组的访问多了一种途径,但指针并不能替代数组来存储大批量数据。
char s[100]="Computer";
char *p="Computer";
①存储内容不同
②运算方式不同
③赋值操作不同
如果字符串数组是一个二维字符数组,例如:
char sa[6][7]={"C++","Java","C","PHP", "CSharp","Basic"};