C++:字符串

一、初识字符串

1.1 string的基础使用

C++中使用string来表示标准字符串,有别于基本数据类型(如int等),string实际上是一个C++自带的类。使用时需要引入头文件 #include <string>,而不是<string.h>

需要注意的是,C++中字符串也使用ASCII编码,因此不支持中文。

string的设计是符合面向对象的,因此内置了很多字符串处理的相关函数。使用相比char*要更加简便,例如无需担心内存是否足够、字符串长度等。

#include <iostream>

using namespace std;


int main()
{
    string s = "Hello";

    // 取出单个字符
    char c1 = s[0];
    cout << c1 << endl; // H

    char c2 = s.at(0);
    cout << c2 << endl; // H

    // 获取字符串长度,下面两种写法等同
    cout << s.size() << endl; // 5
    cout << s.length() << endl; // 5

    // for循环遍历
    for(int i = 0;i < s.size();i++)
    {
        cout << s[i] << " ";
    }
    cout << endl;

    // C++11新增for-each遍历
    for(char i:s)
    {
        cout << i << " ";
    }
    cout << endl;

    // 迭代器:略

    return 0;
}

1.2 at函数与[]的区别

当下标越界时,使用[]取出元素会直接返回一个'\0',程序正常执行。

#include <iostream>

using namespace std;


int main()
{
    string s = "Hello";

    char c1 = s[10];
    cout << c1 << endl;

    cout << "主函数执行结束" << endl;
    return 0;
}

运行结果:

把上述代码中的[]替换为at函数。

#include <iostream>

using namespace std;


int main()
{
    string s = "Hello";

    char c1 = s.at(10);
    cout << c1 << endl;

    cout << "主函数执行结束" << endl;
    return 0;
}

程序运行到第10行会终止,并输出错误信息:

这两种取出元素的方法的区别是:

  • []取出的效率更高
  • at函数更加安全

建议使用at函数,除非可以确保取出的下标一定正确。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值