下面随笔给出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 将串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 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

c++ string类使用及用string类解决整行字符串输入的更多相关文章

  1. C/C++关于string.h头文件和string类

    学习C语言时,用字符串的函数例如stpcpy().strcat().strcmp()等,要包含头文件string.h 学习C++后,C++有字符串的标准类string,string类也有很多方法,用s ...

  2. hadoop中Text类 与 java中String类的区别

    hadoop 中 的Text类与java中的String类感觉上用法是相似的,但两者在编码格式和访问方式上还是有些差别的,要说明这个问题,首先得了解几个概念: 字符集: 是一个系统支持的所有抽象字符的 ...

  3. 深刻理解Java中final的作用(一):从final的作用剖析String被设计成不可变类的深层原因

    声明:本博客为原创博客,未经同意,不得转载!小伙伴们假设是在别的地方看到的话,建议还是来csdn上看吧(原文链接为http://blog.csdn.net/bettarwang/article/det ...

  4. 一些简单的帮助类(1)-- String的类型验证

    在工作中经常会遇到 验证String 中的值是否属于Int型或者是Bool又或是Date 一般的做法是用方法 类型.TryParse(string,类型) 来做验证. "; int intV ...

  5. JAVA基础--常用类 String,StringBuffer, 基础数据类型包装类, Math类, Enum类

    字符串相关类: String, StringBuffer String类为不可变的字符序列 String s1="hello"; String s2="hello&quo ...

  6. Java常用类之String类、Stringbuffer和Random类练习

    定义一个StringBuffer类对象, 1)使用append方法向对象中添加26个字母,并倒序遍历输入 2)删除前五个字符 package 第十一章常用类; /** * 定义一个StringBuff ...

  7. Java常用类(一)String类详解

    前言 在我们开发中经常会用到很多的常用的工具类,这里做一个总结.他们有很多的方法都是我们经常要用到的.所以我们一定要把它好好的掌握起来! 一.String简介 1.1.String(字符串常量)概述 ...

  8. JAVA不可变类(immutable)机制与String的不可变性

    一.不可变类简介 不可变类:所谓的不可变类是指这个类的实例一旦创建完成后,就不能改变其成员变量值.如JDK内部自带的很多不可变类:Interger.Long和String等. 可变类:相对于不可变类, ...

  9. java中的BigDecimal和String的相互转换,int和String的类型转换,Integer类和String相互转换

    一: /*由数字字符串构造BigDecimal的方法 *设置BigDecimal的小数位数的方法 */ 注:BigDecimal在数据库中存的是number类型. import java.math.B ...

随机推荐

  1. java的两性

    java具有解释与编译两种特性 本来是昨天的,可以文件丢失了......(我没有偷懒哦,没有!) 所以凭记忆随便写了点 解释就像直接翻译一本书拿给别人看,编译就像找个翻译官一句句翻译给你t听 解释型( ...

  2. rabbitmq常见面试题

    1.使用RabbitMQ有什么好处?1.解耦,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦! 2.异步,将消息写入消息队列,非必要的业务逻辑以异步的方 ...

  3. c#中几种常见的数据结构

    数组(Array): 1.数组存储在连续的内存上 2.数组的元素类型必须相同 3.数组可以直接通过下标访问 4.查找与修改元素的速度非常快 5.必须在声明时指定长度     动态数组(ArrayLis ...

  4. .net面试--值类型和引用类型

    注:下面的示意图主要是为了辅助理解,不代表内存真实情况. Introduction 类型基础是C#的基础概念,了解类型基础及背后的工作原理更有助于我们在编码的时候明白数据在内存中的分配与传递.C#提供 ...

  5. java通过HttpClient调用接口总结

    2.HttpClient 2.1简介: 最近看项目的代码,看到工程中有两个jar包张的很像,一个是commons.httpclient-3.1.jar,一个是httpclient4.2.1.jar,很 ...

  6. CF1459-C. Row GCD

    CF1459-C. Row GCD 题意: 给出两个整数序列\(a.b\),他们的长度分别为\(n,m\).对于数组\(b\)中的每个数字,让你求出\(gcd(a_1+b_j,a_2+b_j,..., ...

  7. 国产网络测试仪MiniSMB - 如何配置VLAN数据流

    国产网络测试仪MiniSMB(www.minismb.com)是复刻smartbits的IP网络性能测试工具,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此以太 ...

  8. mysql(四)------Mysql中的锁

    1. 2 MySQL InnoDB 锁的基本类型 https://dev.mysql.com/doc/refman/5.7/en/innodb-locking.html 官网把锁分成了 8 类.所以我 ...

  9. C++ 0LL

    C++ 0LL C plus plus L / l means long LL === long long int countDigitOne(int n) { int countr = 0; for ...

  10. chown -R & chmod 777 & chmod +x

    chown -R & chmod 777 & chmod +x https://linux.die.net/man/1/chown chown - change file owner ...