zoukankan      html  css  js  c++  java
  • C++ 学习笔记(三)string 类

    在C语言中如果想要使用字符串那么有两种方法:

      1.定义char型数组:char[10]; 然后将每个字符填充到对应的位置。

        优点:这种方式将字符串放在内存所以每个位置都可以修改。

        缺点:赋值比较麻烦,需要预先定义好长度。

      2.定义char 型指针:char *str = "string test ";

        优点:赋值方便,不需要定义长度。

        缺点:字符串是一个常量,想要改变其中某个字符是不存在的。

    以上两种方式都可以以数组的方式访问字符串中的某一个字符。然而字符串长度不定,内容也不确定的情况在开发中还是很经常遇到的,举个栗子就是文件的命名(用户二次开发的要求五花八门);使用C语言只能开一个比较大的char型数组来解决这个问题但是内心是极其不爽的。

    C++ string类的牛逼之处:

      1.c++兼容c语言下的字符串的玩耍方式。

      2.string是一个类,那么它有自己的“方法”(函数),就是说它自带了求字符串长度、字符串转整型、查找字符等各种功能。

      3.字符串合并直接相加即可,想要在字符串后面加上什么直接 str += "abc"就搞定啦。

      4.不需要定义字符串长度可随意改变字符串内容。(这点很皮)

      5.想要将其他字符串拷贝过去直接用'='就搞定:str = str1;这样就将str1的内容拷贝给str了。

    下面将用程序演示string类的好玩之处:  

    #include <iostream>
    #include <string>
    using namespace std;
    
    void func(int num)
    {
        char arry[num];
        int i;
        for(i=0;i<num;i++)
            arry[i] = 'a';
        arry[num-1] = '';
        cout<<arry<<endl;
    }
    
    int main(int argc, char **argv)
    {
        string str1 = "abc";
        string str2 = "def";
        string str3;
        cout<<"str1:"<<str1<<endl;
    
        cout<<str1+str2<<endl;
        
        str1[1] = 'a';
        cout<<"str1:"<<str1<<endl;
        
        cout<<"entry str3"<<endl;
        cin>>str3;
        cout<<"str3 :"<<str3<<"
    strlen of str3 :"<<str3.size()<<endl;
        
        int num = 0;
        cout<<"entry arry num"<<endl;
        cin>>num;
        func(num);
        system("pause");
        return 0;
    }

       

    1.代码66 行 将str1 与 str2直接相加可直接将其链接起来,类似C语言使用的strcat函数。当然也可以将两者相加的结果赋值给另一个string类

    2.代码68行 直接修改str1中的某一个字符

    3.代码72行 随机输入一个内容,长度不定的字符串string类可以很好的保存起来

    4.代码73行 调用srting类size函数可计算出字符串长度

    5.函数func()内可以定义一个数组,长度可以是一个变量这个在C语言中想想就好。数组字符串需要预留结束符 ’‘的位置那么

      arry[2] == ''; 所以只输出了两个字符’a‘。

     

    感受:

      俗话说编程语言没有优劣之分,各有千秋。但是C++ 的srting 类以及数组长度可用变量进行定义这两点用起来确实是比C语言方便很多。

     

     

     

  • 相关阅读:
    数据库异常状态:Recovery Pending,Suspect,估计Recovery的剩余时间
    Windows:任务调度器
    Package设计2:增量更新
    SSIS 数据流优化
    Data Profiling Task
    SSIS 表达式、操作符和函数
    SSIS 数据流的错误输出
    SSIS 控制流和数据流
    SET QUOTED_IDENTIFIER选项对索引的影响
    Security2:角色和权限
  • 原文地址:https://www.cnblogs.com/MzMxMyg/p/9519491.html
Copyright © 2011-2022 走看看