zoukankan      html  css  js  c++  java
  • c++String类

    C++ 标准库提供了 string 类类型,支持上述所有的操作,另外还增加了其他更多的功能。我们将学习 C++ 标准库中的这个类,现在让我们先来看看下面这个实例:

    现在您可能还无法透彻地理解这个实例,因为到目前为止我们还没有讨论类和对象。所以现在您可以只是粗略地看下这个实例,等理解了面向对象的概念之后再回头来理解这个实例。

    实例

    #include <iostream>
    #include <string>
    using namespace std;
    int main ()
    {
    string str1 = "Hello";
    string str2 = "World";
    string str3;
    int len ;
    // 复制 str1 到 str3 str3 = str1;
    cout << "str3 : " << str3 << endl;
    // 连接 str1 和 str2
    str3 = str1 + str2;
    cout << "str1 + str2 : " << str3 << endl;
    // 连接后,str3 的总长度
    len = str3.size();
    cout << "str3.size() : " << len << endl;
    return 0;
    }

    当上面的代码被编译和执行时,它会产生下列结果:

    str3 : Hello
    str1 + str2 : HelloWorld
    str3.size() :  10

    string类提供了一系列针对字符串的操作,比如:

    •  1. append() -- 在字符串的末尾添加字符
    •  2. find() -- 在字符串中查找字符串
    •  4. insert() -- 插入字符
    •  5. length() -- 返回字符串的长度
    •  6. replace() -- 替换字符串
    •  7. substr() -- 返回某个子字符串
    •  8. ... 
    实例:
    #include <iostream> #include <string> using namespace std; int main() { //定义一个string类对象 string http = "www.runoob.com"; //打印字符串长度 cout<<http.length()<<endl; //拼接 http.append("/C++"); cout<<http<<endl; //打印结果为:www.runoob.com/C++ //删除 int pos = http.find("/C++"); //查找"C++"在字符串中的位置 cout<<pos<<endl; http.replace(pos, 4, ""); //从位置pos开始,之后的4个字符替换为空,即删除 cout<<http<<endl; //找子串runoob int first = http.find_first_of("."); //从头开始寻找字符'.'的位置 int last = http.find_last_of("."); //从尾开始寻找字符'.'的位置 cout<<http.substr(first+1, last-first-1)<<endl; //提取"runoob"子串并打印 return 0; }

    C++ 中输入的方式其实还有很多,下面来介绍一种与 C 语言中 getchar() 类似的。

    cin.getline();

    cin.getline() 是在输入一段字符完成后开始读取数据(注意,是输入完成后,以Enter为结束标志)

    下面是一实例:输入一串字符,编程统计其中的数字个数和英文字母个数。输入的字符以 # 为结束标志。

    #include<iostream>
    using namespace std;
    
    #define N 100
    int main()
    {
        char X[N];
        cin.getline(X,N);                               //以cin.getline形式输入
        int a=0,b=0;
        for(int i=0;i<N;i++)
        {
            if(X[i]=='#')                                      //为#为结束标志
                break;
            if(X[i]>='0'&&X[i]<='9')
                a++;                                         //统计数字个数
            if((X[i]>='a'&&X[i]<='z')||(X[i]>='A'&&X[i]<='Z'))
                b++;                                      //统计英文字母个数
        }
        cout<<a<<endl<<b<<endl;
        return 0;
    }
     
  • 相关阅读:
    第三次作业——《原型设计》
    第二次作业《熟悉使用工具》
    跟着《构建之法》学习软件工程(第一次作业)
    纯js代码实现手风琴特效
    HTML5
    为什么做前端要做好SEO
    让div盒子相对父盒子垂直居中的几种方法
    模板artTemplate
    bootstrap兼容问题
    移动常用的类库
  • 原文地址:https://www.cnblogs.com/jzyzx/p/8456543.html
Copyright © 2011-2022 走看看