C++知识点8:字符串

字符串定义

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

猜你喜欢

转载自blog.csdn.net/htt789/article/details/80843675