关于string类,其实lql大佬早就已经在学习,虽然之前一直想学,但是一直没有开始,还有c++的基本输入(cin)输出(cout),我也是一直不在意,总是认为scanf()和printf()够用,(在这里反思:还是不应该满足于现状,有机会应该多学点新东西)。然后就是c++真香,string类真香= =
2020.1.29更,新增了一些基本函数
传送门
以后学有余力的话还要学学STL标准程序库 听说很香
然后下面就是C++输入输出和string类的小总结
首先cin和cout需要头文件iostream(in out首字母 和 stream结合而成、输入输出流)
cout 和 cin 都是 C++ 的内置对象,C++ 库定义了大量的类(Class,cout 和 cin 就分别是 ostream 和 istream 类的对象,只不过它们是由标准库的开发者提前创建好的,可以直接拿来使用。这种在 C++ 中提前创建好的对象称为内置对象。( 转 ,还看不懂,留着以后看看参透)
众所周知,cin需要在其后紧跟>>使用,同上,cout需要在其后紧跟<<使用。并且>> 、<<可自行分析所要处理的数据类型,因此这也是比scanf和printf好用的一点。
另外cout结尾的endl为换行,等价于\n。
例:
char a[10], b[10], c[10];
cin >> a >> b >> c;
cout << a << " " << b << " " << c << endl;
依次输入HELLO、WORLD、!
结果如下
-----------------------------------------------------------------------------------------------------------
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;
输入 123、456 结果如下

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

被折叠的 条评论
为什么被折叠?



