标准C++String类的一些函数讲解(超简单)

C++ 使用 string 类处理字符串

构造string对象
c++中的字符串类对字符串的操作是十分方便的,也是同学们学c++必须接触的知识点
在处理string对象中,要注意的是,其下标是从0(index)开始的(0~n)

Assigning a string(为字符串赋值)

    std::string w1("Hello");
    w1.assign("world");    //重新设置w1这个string对象的值
    std::cout<<w1<<std::endl;  //运行结果:world

    std::string w2("你好 世界");
    w2.assign("java c++",0,4);  //从0开始到第四个字符覆盖w2这个对象的字符串
    std::cout<<w2<<std::endl; //运行结果:java

    std::string w3("Hello");
    w3.assign(1,'Q');    //1表示字符的个数,把Q这个字符给w3这个字符串给覆盖掉
    std::cout<<w3<<std::endl;  //运行结果:Q

Appending a string(追加字符串,就是跟在字符串的后面取值)

   std::string w1("Hello");
   w1.append(" World");   //就是在初始化串的后边跟上world
   std::cout<<w1<<std::endl; //运行结果:Hello World

   std::string w2("你好");
   w2.append("世界",0,4);  //追加世界 一个汉字占两个字符
   std::cout<<w2<<std::endl;  //运行结果 你好世界

Funtions at,clear,erase, and empty.

at(index): 返回当前的字符串中的index位置的字符.

clear() : 清空字符串.

erase(index,n) : 删除(字符串从index开始到n的第n个字符).

empty() :检测字符串是否为空 .
值得注意的是,empty()这个函数返回值类型是boolean true为空 false为非空.
它只起检测作用.

    std::string a1("HelloWorld");
    std::cout<<a1.at(0)<<std::endl; //返回的结果是H 0号位置是第一位
    std::cout<<a1.erase(0,5)<<std::endl; //就是把第5位前面的字符都删掉
    a1.clear();    //清空
    std::cout<<a1.empty()<<std::endl;   //只是起检测作用 由于被前面的clear()函数清空了 所以返回值为1

Comparing Strings(比较字符串)

其实在c++中,string类型的字符串是可以直接比较的.
但是在这里还是需要学习一下compare()函数的用法和功能.

    std::string b1("Hellokk");
    std::string b2("Hello");
    std::string b3("Hello");
    std::cout<<b1.compare(b2)<<std::endl;  //b1这个string类的对象调用compare()函数 与b2的字符串比较
    std::cout<<b2.compare(b1)<<std::endl;  //同上  结果为-2
    std::cout<<b3.compare(b2)<<std::endl;   //结果为: 0

obtaining substring(获取子串)

at()函数用于获取一个单独的字符串.
substr()函数则可以获取一个子串.

  std::string s1("HelloWorld");
  std::cout<<s1.substr(0,5)<<std::endl;  //获取从下标0开始到5之前的子串 结果:Hello
  std::cout<<s1.substr(5)<<std::endl;  //获取从下标5之后的子串 结果:World

Searching in a String(搜索字符串)

find()函数可以在一个字符串中搜索一个子串或者一个字符.

std::string s1("Welcome to C++" );
std::cout << s1.find("co") <<std::endl; // returns 3; 返回子串出现的第一个位置
std::cout << s1.find("co", 6) << std::endl; // returns -1 从6号位置开始查找子串出现的第一个位置
std::cout << s1.find('o') << std::endl; // returns 4    返回字符出现的第一个位置
std::cout << s1.find('o', 6) << std::endl; // returns 9   从6号位置开始查找字符出现的第一个位置

Inserting and replacing strings(插入和替换字符串)

insert():将某个字符/字符串插入到当前字符串的某个位置
replace(): 将本字符串从某个位置开始的一些字符替换为其他内容

 std::string s1("AAAAA");
 s1.insert(3,"B");  //下标为3 也就是第4个位置插入B
 std::cout<<s1<<std::endl;
 s1.insert(1,3,'C');  //下标1~3之间连续插入C这个字符
 std::cout<<s1<<std::endl;
 s1.replace(0,9,"C++天下无敌!");  //使用替换replace()函数时,一定要写清楚替换的位置
 std::cout<<s1<<std::endl;    //输出的结果为:C++天下无敌!

本文的c++代码按照C++98的标准规范编写。

若有问题可以关注我,也可以私信小作者qq 907372669~

扫描二维码关注公众号,回复: 11368221 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_45687780/article/details/105866514
今日推荐