• 【C++基础】C++中的字符串


    C++支持两种字符串,一种是从C继承过来的C-字符串;另一种是string。下面对它们进行简要的分析。

    C-字符串】

    1、  【简介】C-串是以一个全0位(整数0)字节作为结束符的字符序列。该全0字节既是8位的整数0,也是ASCII码的0。

    (1)【空间长度】字符串长度加1,因为它末尾有一个0作为结束符

    (2)【类型】C-串的类型为char*型

    2、  字符指针与字符数组

    (1)char* str=”Hello!”;

    (2)str是字符指针变量,*str是字符指针变量的间接引用

    (3)【输出】

    输出字符指针就是输出C-串,输出所有字符,直到遇到0

    输出字符指针的间接引用,就是输出单个字符

    (4)比较:C-串字符是字符指针,因此,比较两个【内容相同】的C-串时,会它们的空间位置不相同而不同

             C库函数中,专门设计了C-串的比较函数【strcmp】来用于比较

    (5)复制:C-串字符数组是不能简单复制的

             char a1[6]=”hello”;

             char a2[6]=a1; //错误

             C库函数设计了【strcpy】函数用于C-串复制

    注:C-库函数在string.h的头文件中

    string

    1.【简介】string是一种自定义的类型,它可以方便地执行C-串不能直接执行的一切操作

    2.【处理空间】string的处理空间是自动的,需要多少,用多少;它不用担心指针脱离;它可从C-串转换得到,还可从内部“提炼”出C-串

    3.string与C-串有良好的亲和性,C-串可以直接赋值给创建中的和已经存在的string变量

    【字符串的输入/输出】

    1.输入:

    (1)循环读入方式:运用“cin>>”

             for(string s;cin>>s;)

                       cout<<s<<” ”;

             cout<<endl;

    或者

             for(char a[10];cin>>a;)

                       cout<<a<<” ”;

             cout<<endl;

    注:

    -“cin>>”的读入方式总是将前导的空格(空格、回车、水平或垂直制表符等)过滤掉,当遇到空格时结束本次输入

    -“cin>>”不能辨别空格与回车的差异

    (2)通过getline逐行输入:

             string s;

             getline(cin,s);

             cout<<s<<endl;

    或者

             char a[40];

             cin.getline(a,40);

             cout<<a<<endl;

    注:getline总是将行末的回车符过滤掉

    (3)逐个字符输入

             for(char ch;(ch=cin.get())!=’ ’;)

                       cout<<char(ch);

             cout<<endl;

    【string流】

  • 相关阅读:
    Java appendReplacement 和 appendTail 方法
    UVA Mapping the Swaps
    oppo X907刷机包 COLOROS 1.0 正式版公布 安卓4.2.2
    MVC传递Model之TempData、ViewData、ViewBag差别及用途
    新加坡电视剧--幸福料理Spice Up每集剧情 Episodic Synopsis_wkh73_新浪博客
    七分食三分练,“七分食”希望解决的是健身人群的独特用餐需求
    基于Redis的BloomFilter算法去重
    砍高层“手脚”、中层“屁股”、基层“脑袋”……任正非管人用人之道竟是如此简单!
    (2)注码法的价值
    全球购 颂拓SUUNTO手表AMBIT3拓野3户外运动石英男表巅峰系列 巅峰蓝宝石心率 SS020673000【图片 价格 品牌 报价】-京东
  • 原文地址:https://www.cnblogs.com/jixiaowu/p/3911888.html
Copyright © 2020-2023  润新知