【C++】:STL标准库之string

本文详细介绍了使用C++进行字符串操作的方法,包括字符串输出、字符访问、子串复制及追加、比较等基本操作,并展示了如何利用标准库函数实现字符串的高效处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//============================================================================
// Name        : InsertSort.cpp
// Author      : YL
// Version     :
//============================================================================
#include <iostream>
#include <string>
using namespace std;
int main()
{
    string s = "fsafdsfa";
    cout << s.c_str() << endl;
    // 想要输出string类型的变量,不能直接输出要用s。c_str()这个方法



    char chA = s[5];
    char chD = s.at(5);
    cout <<"chA = "<<chA<<"\nchD = "<<chD<<endl;
    //  用上述两种方式调用都是一样的,只是用s.at()这个方式可以做溢出检测
    //  比如当index超出s的长度时,这个会抛出out_of_range的异常。
    //  output:
    //  chA = s
    //  chD = s


    char e[8] = {0};
    int iCount = s.copy(e,5,2);
    cout<<"e="<<e<<"\nicount="<<iCount<<endl;
    //output
    // e = afd,表示了从下标为2的位置开始输出3个字符。
    // icount = 5,表示了函数返回了输出字符的个数


    string strA("yuanlei");
    string strB("handsome");
    strB += strA;   //此时strB为 "yuanlei handsome"
    strB +="!";
    strB.append("123");//该函数和python中的一样的效果,在字符串末尾加上对应的字符。
    strB.append("abcd",2);
    string strC("STLtest");
    strB.append(strC,3,3);
    strB.append(5,'U');
    cout << strB.c_str()<<endl;
    //output....


    string strA("acdq");
    string strB("bab");
    string strC("bab");
    string strD("Bab");
    int iAB = strA.compare(strB);
    int iBA = strB.compare(strA);
    int iBC = strB.compare(strC);
    int iCD = strC.compare(strD);
    //output
    //iAB =-1
    //iBA = 1
    //iBC = 0
    //iCD = 1



    string strA("UIPower");
    string strB = strA.substr(2,3); //此时strB的内容为"Pow"
    strA.replace(2,2,"-----");      //此时strA的内容为"UI-----wer"
    strA.erase(2,4);   //删除某个位置
    string strB("hello");
    strA.swap(strB); //相当于把strA和strB互换了一下
    //output
    //Pow


    //string的查找
    //看下面的图pain




    return 0;
}

编码统一化,编写单一源代码

如果我们想建立两个版本的程序,一个处理ASCII字符串,另一个处理Unicode字符串,最好的解决办法就是比那些既能够按照ASCII编译又能够按照Unicode编译的单一源代码。把以下代码加入到程序中,只要修改一个宏就能满足我们的要求了。

#ifdef _UNICODE
    typedef wstring tstring;
    typedef wchar_t tchar;
    #define _T(X) L##x
#else
    typedef string tstring;
    typedef char tchar;
    #define _T(X) x
#endif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuanCruise

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值