C++中的字符串

/**
字符串常量
例:"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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值