c++ string类使用及用string类解决整行字符串输入

下面随笔给出c++ string类使用及用string类解决整行字符串输入。

string

  • 使用字符串类string表示字符串

  • string实际上是对字符数组操作的封装

string类常用的构造函数

  • string(); //默认构造函数,建立一个长度为0的串

例:

string s1;

  • string(const char *s); //用指针s所指向的字符串常量初始化string对象

例:

string s2 = “abc”;

  • string(const string& rhs); //复制构造函数

例:

string s3 = s2;

string类常用操作

  • s + t将串st连接成一个新串

  • s = tt更新s

  • s == t判断st是否相等

  • s != t判断st是否不等

  • s < t判断s是否小于t(按字典顺序比较)

  • s <= t判断s是否小于或等于t(按字典顺序比较)

  • s > t判断s是否大于t(按字典顺序比较)

  • s >= t判断s是否大于或等于t(按字典顺序比较)

  • s[i]访问串中下标为i的字符

  • 例:

string s1 = "abc", s2 = "def";

string s3 = s1 + s2; //结果是"abcdef"

bool s4 = (s1 < s2); //结果是true

char s5 = s2[1]; //结果是'e'

1 //例 string类应用举例
 2 
 3 #include <string>
 4 
 5 #include <iostream>
 6 
 7 using namespace std;
 8 
 9 //根据value的值输出true或false
10 
11 //title为提示文字
12 
13 inline void test(const char *title, bool value)
14 
15 {
16 
17   cout << title << " returns "
18 
19   << (value ? "true" : "false") << endl;
20 
21 }
22 
23 int main() {
24 
25   string s1 = "DEF";
26 
27   cout << "s1 is " << s1 << endl;
28 
29   string s2;
30 
31   cout << "Please enter s2: ";
32 
33   cin >> s2;
34 
35   cout << "length of s2: " << s2.length() << endl;
36 
37   //比较运算符的测试
38 
39   test("s1 <= \"ABC\"", s1 <= "ABC");
40 
41   test("\"DEF\" <= s1", "DEF" <= s1);
42 
43   //连接运算符的测试
44 
45   s2 += s1;
46 
47   cout << "s2 = s2 + s1: " << s2 << endl;
48 
49   cout << "length of s2: " << s2.length() << endl;
50 
51   return 0;
52 
53 }

用string类解决输入整行字符串

  • cin>>操作符输入字符串,会以空格作为分隔符,空格后的内容会在下一回输入时被读取

输入整行字符串

  • getline可以输入整行字符串(要包string头文件),例如:

getline(cin, s2);

  • 输入字符串时,可以使用其它分隔符作为字符串结束的标志(例如逗号、分号),将分隔符作为getline的第3个参数即可,例如:

getline(cin, s2, ',');

1 //例 用getline输入字符串
 2 
 3 include <iostream>
 4 
 5 #include <string>
 6 
 7 using namespace std;
 8 
 9 int main() {
10 
11   for (int i = 0; i < 2; i++){
12 
13     string city, state;
14 
15     getline(cin, city, ',');
16 
17     getline(cin, state);
18 
19     cout << "City:" << city << “ State:" << state << endl;
20 
21   }
22 
23   return 0;
24 
25 }
26 
27 //运行结果:
28 
29 Beijing,China
30 
31 City: Beijing State: China
32 
33 San Francisco,the United States
34 
35 City: San Francisco State: the United States

原文链接: https://www.cnblogs.com/iFrank/p/14447762.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/208406

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午11:23
下一篇 2023年2月12日 下午11:23

相关推荐