zoukankan      html  css  js  c++  java
  • 17.C++-string字符串类(详解)

    C++字符串string类

    在C语言里,字符串是用字符数组来表示的,而对于应用层而言,会经常用到字符串,而继续使用字符数组,就使得效率非常低.

    所以在C++标准库里,通过类string从新自定义了字符串。

    头文件: #include <string>

    • string直接支持字符串连接
    • string直接支持字符串的大小比较
    • string直接支持子串查找和提取
    • string直接支持字符串的插入和替换
    • string同时具备字符串数组的灵活性,可以通过[ ]重载操作符来访问每个字符。

    字符串数组和string对象尽量不要混合使用,会带来意想不到的问题

    例如,通过字符串数组赋值给string对象:

    打印运行:

    这是因为,使用for循环拷贝,仅仅改变了str的串内容,并没有改变str的length长度.

    string类常用的成员函数有:

      

     

    const char* c_str();   

    返回一个常量C字符串, 内容与本string串相同. 

    注意:当本string的内容改变,或被析构后,返回的字符串也不会被改变,因为返回的字符串是从新通过new char[]出来.

    参考下面代码,可以发现返回的C字符串地址和string里的字符串地址完全不同:

    反转相关(位于头文件<algorithm>)

    拷贝相关:

    "abcdefg" 循环右移3位等到: "efgabcd"

    代码如下:

    代码如下:

      

    字符串与数字的转换

    以前,在C里,当我们想获取字符串里的数字时,一般都是通过strtoul()或者sscanf()获取

    在C++标准库里,也提供字符串与数字的转换.位于<sstream>头文件.

    同时需要用到两个类:

    将string 字符串 ->数字,使用方法如下

    也可以通过临时对象转换,这样写:

    或者将第3行,写为宏:

      

    将数字->string 字符串,使用方法如下

    也可以通过宏,这样写:

      


    文章来源:https://www.cnblogs.com/lifexy/p/8642163.html

  • 相关阅读:
    java源码之HashMap和HashTable的异同
    java源码之HashMap
    进制转换
    java基本数据类型及其包装类
    java实例化对象的五种方法
    20 栈的压入、弹出序列
    19 包含min函数的栈
    18 顺时针打印矩阵(记忆,常忘记)
    16 树的子结构(这题多复习)
    15合并两个排序的链表
  • 原文地址:https://www.cnblogs.com/xiongjim/p/9673918.html
Copyright © 2011-2022 走看看