标准类型String(学习中)

1、读取string对象

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    string s;
    cin>>s;
    cout<<s;
    return 0;
}

这段代码首先定义了一个名为s 的空string,然后将标准输入的内容读取到s中。在执行读取操作时,string对象自动忽略开头的空白(即空格符、换行符、制表符等)并从第一个真正的字符开始读起,直到遇到下一次空白为止。
如上所述,如果程序的输入时“   hello world!!  ”(注意开头和结尾处的空格),输出将是“hello”,输出结果中没有任何空格。

2、和内置类型的输入输出一样,string对象的此类操作也是返回运算符左侧的运算对象作为其结果。因此,多个输入或者多个输出可以连着写在一起:

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    string s1,s2;
    cin>>s1>>s2;
    cout<<s1<<s2;
    return 0;
}

假如上面的程序输入与之前的一样的内容,“    hello  world!!  ”,输出将是“helloworld!!”

3、getline读取一整行
  如果使用这样的程序

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    string s1;
    while(cin>>s1)
      cout<<s1;
    cout<<endl;
    return 0;
}

(上面是我的输入和输出)

有事我们希望能在最终得到的字符串中保留输入时的空白符,这时应该用getline函数代替之前的>>运算符。getline函数的参数是一个输入流和一个string对象。函数从给定的输入流中读取内容,直到遇到换行符为止。(触发getline函数返回的那个换行符实际上被丢弃啦,得到的string对象中并不包含换行符)

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    string s1;
    while(getline(cin,s1))
      cout<<s1;
    cout<<endl;
    return 0;
}

4、string::size_type类型

对于size函数来说,返回一个int或者所述的那样返回一个unsigned似乎都是合理的。但是size函数返回的是一个string::size_type类型的值,下面就对这种新类型稍作解释。

string 类及其他大多标准库函数都定义了几种配套的类型,这些配套类型体现在标准类型与机器无关的特性,类型size_type即是其中的一种。

由于size函数返回的是一个无符号整型数,因此切忌,如果在表达式中混用了带符号的数和无符号数可能产生意想不到的结果。

Tip:如果表达式中已经有了size()函数就不要在使用int了,这样可以避免混用int和unsigned可能带来的问题。

5、比较string对象

string类定义了几种用于比较字符串的运算符。这些比较运算符注意比较string对象中的字符,并且对大小写敏感。

上述这些运算符都按照字典顺序:

  • 如果两个string对象的长度不同,而且较短的string对象的每个字符都与较长string对象对应位置上的字符相同,就说较短string对象小于较长string对象。
  • 如果两个string对象在某些对应的位置上不一致,则string对象比较的结果是string对象中第一对相异字符比较的结果。

6、字面值和string对象相加

当把string对象和字符字面值及字符串字面值混在一条语句中使用时,必须确保每个加法运算符(+)的两侧的运算符对象至少有一个时string

string s=‘hello‘+‘world‘;//错误:两个运算对象都不是string

string s1=s+‘,‘+‘xiao‘;//合法 相当于 string s1=(s+‘,‘)+‘xiao‘;因为其中s+‘,‘的结果是一个string对象。

string s2=‘hello‘+‘,‘+s;//不合法

Warning:C++语言中的字符串字面值并不是标准库类型string的对象。切记,字符串字面值与string是不同类型。(字符串字面值的类型是const char[N],而string是标准库类型)

时间: 2024-11-06 13:46:23

标准类型String(学习中)的相关文章

【C++ Primer每日刷】之三 标准库 string 类型

标准库 string 类型 string 类型支持长度可变的字符串,C++ 标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作.标准库string 类型的目的就是满足对字符串的一般应用. 与其他的标准库类型一样,用户程序要使用 string 类型对象,必须包含相关头文件.如果提供了合适的 using 声明,那么编写出来的程序将会变得简短些: #include <string> using std::string; 1.1 string 对象的定义和初始化 string 标准库支持几个

3.2 标准库类型string(上)

#include <string> #include <iostream> using std::string; using std::cin; using std::cout; using std::endl; //string定义在命名空间std中 int main() { /**************3.2.1 定义和初始化string*****************/ string s1; //默认初始化,S1是一个空字符串 string S2 = s1; //S2时S

标准库string类型用法(一)

标准库string类型 1. string对象的定义与初始化 string s1;                             默认构造函数,s1为空串 string s2(s1);                      将s2初始化为s1的一个副本 string s3("nwpu");            将s3初始化为一个字符串字面值副本 string s4(n, 'b');                 将s4初始化为字符‘b’的n个副本 2. string对

标准库string类型

string类型支持长度可变的字符串,C++标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作.标准库string类型的目的就是满足对字符串的一般应用. 本文地址:http://www.cnblogs.com/archimedes/p/cpp-string.html,转载请注明源地址. 引入头文件#include<string> 1.string对象的定义和初始化 string标准库支持几个构造函数,构造函数是一个特殊成员函数 一下是几种初试化string对象的方式 string s

C++标准库类型string

string类表示可变长字符序列,包含在头文件string中,作为标准库的一部分string定义在std命名空间中 1.初始化string对象 std::string s1;//默认初始化s1是个空字符 std::string s2 = s1;//s2是s1的副本 std::string s3 = "hello";//s3是该字符串字面值的副本 std::string s4(10,'h');s4的内容是hhhhhhhhhh 直接初始化和拷贝初始化 初始化时用到=号的就是拷贝初始化,其在

包装类的介绍和String类型的学习

包装类 为8种基本类型各自提供对象形式 int ---- Integer char ---- Character short ---- Short double ---- Double ... 自动封箱: JDK5.0 由编译器自动完成基本类型和包装类的转换 Integer i = 12; Integer i = new Integer(12); int m = i; int m = i.intValue(); Integer i = 12; i++; // i = new Integer(i.

谈谈两种标准库类型---string和vector

两种最重要的标准库---string和vector string和vector是两种最重要的标准库类型,string表示可变长的字符序列,vector存放的是某种给定类型对象的可变长序列. 一.标准库类型string   1.定义和初始化string对象:初始化string对象的方式有 string s1   默认初始化,s1是一个空串   string s2(s1)   s2是s1的副本 string s2=s1   等价于s2(s1),s2是s1的副本 string s3("value&qu

标准库类型String

string对象中每个字符的处理: 要用到 for(声明:表达式) 语句 比如简单的打印string str中每一个字符 --- string str("hello world!!!"); for(auto c: str)cout<<c<<endl; (ps:这里auto 的意思是让编译器自己来决定c变量的类型) --- 再举一个例子统计string str的标点符号数目 string str("hello world!!!"); declt

SAP ABAP编程 在string类型A字符串中查询匹配string类型B字符串

如题,在string类型A字符串中查询匹配string类型B字符串,方法如下: DATA: a TYPE string VALUE 'ABCDEFGHIJKLNM', b TYPE string VALUE 'EFGHIJ', c TYPE string . DATA: off  TYPE i VALUE 0,   "从自己个字符开始查找 moff TYPE i, mlen TYPE i. FIND b IN SECTION OFFSET off OF a MATCH OFFSET moff &