C++中的字符串

    xiaoxiao2025-01-24  58

    /** 字符串常量 例:"program" 各字符连续、顺序存放,每个字符占一个字节,以‘\0’结尾,相当于一个隐含创建的字符常量数组 “program”出现在表达式中,表示这一char数组的首地址 首地址可以赋给char常量指针: const char *STRING1 = "program"; 将常量字符串的首地址赋值给常量字符指针,这意味着字符指针所指向的地址中的数据是常量 常量的地址必须由常指针来保存,意味着常指针寻址操作后所指向的内存空间中的数据不能被更改

    用字符数组存储字符串(C风格字符串)

    C++中存储字符串变量的两种形式: (1)C风格的字符串:用字符数组存放字符串 char* string_array[8]={'p','r','o','g','r','a','m','\0'} 将字符串中的各个字符依次连续存放在字符数组的各个元素中,末尾添加上 '\0'  即可 C风格的字符串必须以  '\0'  结尾 (2)C++所提供的string模板类

    **/

    /** C++中的string类 string类是C++语言标准库中封装起来的字符串 string类常用的构造函数 string(); //默认构造函数,建立一个长度为0的串 例: string s1; string(const char *s); //用指针s所指向的字符串常量初始化string对象 例: string s2 = “abc”; string(const string& rhs); //复制构造函数 例: string s3 = s2; string类常用操作 s + t 将串s和t连接成一个新串 s = t 用t更新s s == t 判断s与t是否相等 s != t 判断s与t是否不等 s < t 判断s是否小于t(按字典顺序比较) s <= t 判断s是否小于或等于t (按字典顺序比较) s > t 判断s是否大于t (按字典顺序比较) s >= t 判断s是否大于或等于t (按字典顺序比较) s[i] 访问串中下标为i的字符 在string类中重载了运算符 **/ #include<iostream> #include<string> using namespace std; int main(){ // string s1;//调用string类的默认构造函数,建立一个长度为0的字符串 // // s1="abc";// c++中 双引号表示字符串,单引号表示字符,用单引号初始化字符串只能使用C风格的字符串 // // cout<<&s1<<" "<<s1<<endl; // // string s2=s1;//调用复制构造函数,将s1的数据成员复制一份给s2 // // cout<<&s2<<" "<<s2<<endl;// s1和s2具有不同的地址,相同的内容 string s1="abc"; string s2="def"; string s3=s1+s2;//字符串拼接 cout<<s3<<endl; bool s4=s1>s2; char s5=s1[1]; cout<<s4<<" "<<s5<<endl; return 0; }

    用cin的>>操作符输入字符串,会以空格作为分隔符,空格后的内容会在下一回输入时被读取 输入整行字符串 getline可以输入整行字符串(要包string头文件),例如: getline(cin, s2); 输入字符串时,可以使用其它分隔符作为字符串结束的标志(例如逗号、分号), 将分隔符作为getline的第3个参数即可,例如: getline(cin, s2, ','); getlin  的第一个参数表示输入流对象,cin表示从键盘输入         第二个参数表示存放输入流字符串的对象         第三个参数表示输入字符串分隔符,默认为换行符  '\n'  

     

    最新回复(0)