C++ string类的首尝试

本文深入探讨了C++中的string类及其各种用法,包括字符串的创建、赋值、复制和拼接等操作。同时,文章还介绍了C++的cin和cout输入输出流的使用方法,对比了与传统scanf和printf的区别,强调了C++标准库的优势。

关于string类,其实lql大佬早就已经在学习,虽然之前一直想学,但是一直没有开始,还有c++的基本输入(cin)输出(cout),我也是一直不在意,总是认为scanf()和printf()够用,(在这里反思:还是不应该满足于现状,有机会应该多学点新东西)。然后就是c++真香,string类真香= =


2020.1.29更,新增了一些基本函数

传送门


以后学有余力的话还要学学STL标准程序库 听说很香

然后下面就是C++输入输出和string类的总结

首先cincout需要头文件iostream(in out首字母 和 stream结合而成、输入输出流)
coutcin 都是 C++ 的内置对象,C++ 库定义了大量的类(Class,coutcin 就分别是 ostreamistream 类的对象,只不过它们是由标准库的开发者提前创建好的,可以直接拿来使用。这种在 C++ 中提前创建好的对象称为内置对象。( ,还看不懂,留着以后看看参透)
众所周知,cin需要在其后紧跟>>使用,同上,cout需要在其后紧跟<<使用。并且>><<可自行分析所要处理的数据类型,因此这也是比scanfprintf好用的一点。
另外cout结尾的endl为换行,等价于\n
例:

char a[10], b[10], c[10];
cin >> a >> b >> c;
cout << a << " " << b << " " << c << endl;

依次输入HELLOWORLD!
结果如下
在这里插入图片描述-----------------------------------------------------------------------------------------------------------

string类

首先,刚看到string类的就眼前一亮,因为它可以直接用+连接两个字符串,这和高中所接触的visual basic的字符串运算方式相一致,而之前接触的字符串连接函数是strcat(),显然没+来的简单。当然,这肯定只是string类的冰山一(0.00001)角。

首先string类的使用需要头文件string,注意与C的string.h区分。
声明一个字符串变量也十分简单,例:

string str;
下面转了一些string类的基本用法(来源)
string str;            //定义了一个空字符串str
str = "Hello world";   // 给str赋值为"Hello world"
char cstr[] = "abcde"; //定义了一个C字符串
string s1(str);        //调用复制构造函数生成s1,s1为str的复制品
cout << s1 << endl;
string s2(str, 6); //将str内,开始于位置6的部分当作s2的初值
cout << s2 << endl;
string s3(str, 6, 3); //将str内,开始于6且长度顶多为3的部分作为s3的初值
cout << s3 << endl;
string s4(cstr); //将C字符串作为s4的初值
cout << s4 << endl;
string s5(cstr, 3); //将C字符串前3个字符作为字符串s5的初值。
cout << s5 << endl;
string s6(5, 'A'); //生成一个字符串,包含5个'A'字符
cout << s6 << endl;
string s7(str.begin(), str.begin() + 5); //区间str.begin()和str.begin()+5内的字符作为初值
cout << s7 << endl;

这是程序运行结果:
在这里插入图片描述
还有就是开头提到的用+连接两个string类字符串的操作。
其实还可以用 ==><>=<=、和!=比较字符串,可以用+或者+=操作符连接两个字符串,并且可以用[]获取特定的字符。
例:

    string a, b;
    cin >> a >> b;
    int c = a > b;
    int d = a == b;
    int e = a < b;
    cout << "a=" << a << endl
         << "b=" << b << endl
         << "c=" << c << " d=" << d << " e=" << e << endl
         << "a[0]=" << a[0] << " b[1]=" << b[0] << endl;

输入 123456 结果如下
在这里插入图片描述
暂时总结这么多,有时间再总结string类的一些用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hesorchen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值