• C++ 字符串string


    标准库类型string表示可变长的字符序列,内部使用了char数组,使用string类型必须首先包含string头文件

    #include <string>
    
    • 1

    1,string的定义和初始化

    在C++中string也提供了多种不同的定义和初始化过程:

    string s1;//默认初始化,s1是一个空字符串
    
    string s2(s1);
    string s2 = s1;//s2 是s1的一个副本
    
    string s3("hello");//s3是字面量"value"的副本,除了字面值最后的哪个空字符此外
    string s3 = "hello";//s3是该字符串字面量的副本
    
    string(5, 'a');// s4的内容是aaaaa
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    对于上述初始化的区分主要分为直接初始化和拷贝初始化
    1)拷贝初始化:使用”=“初始化一个变量,编译器把等号右侧的初始值拷贝到新创建的对象中去。
    2)直接初始化:不适用等号时则是直接初始化。
    例如:

    string s3 = "hello";//拷贝初始化
    string(5, 'a');// 直接初始化
    
    • 1
    • 2

    2,string对象的操作

    操作描述
    os<将s写到输出流os当中,返回os
    is>>s;从is中读取字符串赋给s,字符串以空白分割,返回is
    getline(is,s);从is中读取一行赋给s,返回is
    e.empty();s为空返回true,否则返回false
    s.size();返回s中字符的个数
    s[n];返回s中第n个字符的引用,位置n从0计起
    s1+s2;返回s1和s2连接后的结果
    s1=s2;用s2的副本代替s1中原来的字符
    s1==s2如果s1和s2中所包含的字符完全一样,则他们相等,string对象的相等性判断对字母的大小写铭感
    s1!= s2;判断非相等
    <,<=,>,>=;利用字符在字典中的顺序进行比较,且对字母的大小写铭感

    读写string对象

    string s;
    cin >> s;//写入
    cout << s << endl;//输出
    
    • 1
    • 2
    • 3

    3, string对象中字符的处理

    在cctype头文件中定义了一组标准函数库

    功能描述
    isalnum(a)当a是字母或数字时为真
    isalpha(a)当a是字母时为真
    iscntrl(a)当a是控制字符时为真
    isdigit(a)当a是数字时为真
    isgraph(a)当a不是空格但可打印时为真
    islower(a)当a是小写字母时为真
    isprint(a)当a是可打印字符时为真(即a是空格或a具有可视形式)
    ispunct(a)当a是标点符号时为真(即a不是控制字符,数字,字母,可打印空白中的一种)
    isspace(a)当a是空白时为真(即a是空格,横向制表符,纵向制表符,回车符,换行符,进纸符中的一种)
    isupper(a)当a是大写字母时为真
    isxdigit(a)当a是十六进制数字时为真
    tolower(a)如果a是代谢字母,输出对应的小写字母:否则原样输出a;
    toupper(a)如果a是小写字母,输出对应的大写字母:否则原样子输出a;

    输出string中每一个字符

    string line = "hello word";
    for (auto c : line) {
    cout << c << endl;
    }
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    Java项目:基于JSP的幼儿园管理系统
    hadoop生态圈面试精华之MapReduce(二)
    易云维®智慧工厂数字化管理平台助推工业制造企业数字化转型新动能
    一个只使用了hashlib和base64的对称加密实现
    Python一些小操作
    记录一些遇到的数学概念
    命令模式简介
    阿里云服务器登录、安装MySql、配置Python、GO环境
    神经网络过拟合怎么解决,神经网络过拟合怎么办
    从线代角度图解:通解、特解、非齐次通解、非齐次特解、齐次通解、齐次特解
  • 原文地址:https://blog.csdn.net/zdc9023/article/details/126287405