字符串定义
1.字符串数组 char str[]=”123456”;
字符串数组分配内存;
2.字符串指针 char *str=”123456”;
定义常量字符串”123456”,再用str字符指针指向字符串。
注:定义字符串用双引号“”,定义字符串中的某一个元素用单引号’‘。
str:字符串指向第一个元素的指针
*str:字符串第一个元素值
&str:字符串内存地址
字符串名称也是字符串首元素的地址:两个内容相同但名称不同的字符串,地址不同,既str1!=str2。
char str1[]="123";
char str2[]="lll";
cout<<"str1="<<str1;//str1=123
cout<<"str1="<<str2;//str1=123
cout<<*str1;//1
用两个指针指向同一个常量字符串,常量字符串地址不变,既两个指针相同。p1=p2
char *p1=str1;
char *p2=str1;
cout<<p1<<endl<<p2<<endl;//123 123
cout<<*p1<<endl<<*p2;// 1 1
char str1[]="123";
int length=sizeof(str1);
char *p=str1;
for(int i=0;i<length-1;i++){
cout<<p<<endl;
p++;
}
输出:
123
23
3
计算字符串长度:
1.sizeof(字符串名)
包括字符串最后的结束符’\0’
char str="123";
sizeof(str);//4
2.strlen(字符串名)
不包括字符串最后结束符’\0’
#include<string.h>
char str="123";
strlen(str);//3
遍历字符串中的元素:
1.下标遍历:str[i]
char str1="123";
int length=sizeof(str1);
for(int i=0;i<length-1;i++)
cout<<"str["<<i<<"]="<<str1[i]<<endl;
输出:
str[0]=1
str[1]=2
str[2]=3
2.指针遍历:p
char str1="123";
int length1=sizeof(str1);
char *p=str1;
for(int i=0;i<length1-1;i++){// while(*p!='\0')
cout<<"str["<<i<<"]="<<*p<<endl;
p++;
}
输出:
str[0]=1
str[1]=2
str[2]=3