美文网首页
C++ 中的字符串类型

C++ 中的字符串类型

作者: 不决书 | 来源:发表于2023-03-02 22:42 被阅读0次

在C++中没事实际意义上的字符串,只有char类型的字符,字符在C++底层也是通过ASCII编号来记录的,字符串类型其实就是字符数组类型,我们在C语言中的定义方式为:

    int main(){
      // 定义一个字符串
      char*  str = "David";
      // 在计算机中,认为一个字符数组,最后一位为ASCII的null, 就编码为0,就表示字符串结束
      // char*  name[5] = {'D', 'a', 'v', 'i', 'd'};
      // 正确的方式就是在变量后面再加一个0
      char*  name[6] = {'D', 'a', 'v', 'i', 'd', '0'};

     // 通过索引可以获取到单个字符,获取到字符 v
      char a = str[2];
      // 输出
      std::cout << a << std::endl;
      std:cout << str << std:endl;
      // 这里输出的结果就是错误的具体看下图
      std:cout << name << std:endl;
      
      std::cin.get();
    
    }
    
char* name[5] = {'D', 'a', 'v', 'i', 'd'} 的输出结果

C++标准库STD提供了字符串类型,基本使用方法为

#include <iostream>
#include <string>
 int main(){
      // 定义一个字符串
       std::string name = "David";
       // 这里输出std:string 类型,需要 include <string>
      std::cout << name << std::endl;
  
    }
  

根据前面说讲的内容,因为字符串,其实就是一个数组,所以以下代码会报错

  #include <iostream>
#include <string>
 int main(){
      // 定义一个字符串,这里的字符串相加是不可以的
       std::string name = "David" +  "Hello";
       // 这里输出std:string 类型,需要 include <string>
      std::cout << name << std::endl;
  
    }

字符串的相加正常的代码应该是

  #include <iostream>
  #include <string>
 int main(){
      // 定义一个字符串,这里的字符串相加是不可以的
       std::string name = "David" ;
       // 利用标准库提供的操作符重载
       name+ =   "Hello";
      
       // 或者通过类型强转
        std::string name2 = std::string("David") + "hello";
      
       // 这里输出std:string 类型,需要 include <string>
       std::cout << name << std::endl;
  
    }

还有一个注意的点,就是在函数中使用字符串作为参数,切记要传地址进去,不然就会copy一份数据,造成空间和性能的浪费,同时要让参数是const 类型,保证数据传入后不被修改,具体代码如下

  #include <iostream>
  #include <string>
  void PrintString(const std::string*  str){
      std::cout << str << std::endl;    
  }
 int main(){
      // 定义一个字符串,这里的字符串相加是不可以的
       std::string name = "David" ;
       // 利用标准库提供的操作符重载
       name+ =   "Hello";
       PrintString(name);
      
       // 或者通过类型强转
        std::string name2 = std::string("David") + "hello";
      
       // 这里输出std:string 类型,需要 include <string>
       std::cout << name << std::endl;
  
    }

相关文章

  • C++字符串处理小结

    C++中的字符串类型 常用的C++的字符串类型主要是std::string。它是模板std::basic_stri...

  • C++<第十九篇>:字符串

    C++ 中的字符串有两种形式:(1)C风格的字符串 (2)C++引入的 string 类型的字符串。 (1)C风格...

  • C++ 字符串

    C++ 提供了以下两种类型的字符串表示形式: C 风格字符串 C++ 引入的 string 类类型 1、C 风格字...

  • C++ Builder 的字符串类型、字符类型、字符编码

    C++ Builder 参考手册 ➙ C++ Builder 的字符串类型、字符类型、字符编码 字符变量 字符常数...

  • 字符串

    C++提供了两种字符串的表示形式: C风格字符 C++引入的string类型 C风格 函数 C++中的String类

  • Java程序员学习C++(第一篇)

    1. 数据类型与变量 C++中布尔类型是bool,字符串类型是string 需要注意的点 string 都是 AS...

  • 2019-04-02 C++学习笔记之字符串

    参考资料:《21天学通C++》 字符串库 读写字符串 在C++中,可以用iostream库来读写内置类型的值,如i...

  • c++ char string转换

    char转换为string C++中char类型可以自动转换成string类型,即你可以用char类型字符串直接给...

  • C/C++语言基础

    语言基础 字符串类-string 常量与变量 运算符 程序和语句 字符串类-string (属于类类型)(c++中...

  • 02 python 中字符串的使用

    字符串 字符串是编程中必不可少的一种类型,在 C 语言中是 char* 在 C++ 中也 是有的 ,python ...

网友评论

      本文标题:C++ 中的字符串类型

      本文链接:https://www.haomeiwen.com/subject/exijldtx.html