10-C++学习笔记-字符串

在这里插入图片描述

📚 前言

字符串是在编程中广泛使用的数据类型,用于表示一系列字符。在C++中,我们可以使用C风格字符串和string类来处理字符串操作。本篇学习笔记将详细介绍字符串的相关知识。

📖 1 C风格字符串

✨ C风格字符串初始化

C风格字符串是以空字符('\0')结尾的字符数组。可以通过以下方式进行初始化:

#include <iostream>
#include <cstring>
using namespace std;

int main() {
    char str1[] = "Hello";   // 字符串字面值初始化
    char str2[6] = "World";  // 指定数组大小
    char str3[] = {'H', 'e', 'l', 'l', 'o', '\0'};  // 逐个字符初始化

    cout << "str1: " << str1 << endl;   // 输出字符串
    cout << "str2: " << str2 << endl;
    cout << "str3: " << str3 << endl;

    return 0;
}

在上述示例中,我们使用不同的方式对C风格字符串进行初始化,并输出字符串的内容。
运行结果:
在这里插入图片描述

✨ C风格字符串常见操作

C风格字符串提供了一系列的函数来进行字符串操作,包括计算长度、拷贝、连接等。

#include <iostream>
#include <cstring>
using namespace std;

int main() {
    char str1[] = "Hello";
    char str2[20];

    // 字符串长度
    int length = strlen(str1);
    cout << "Length of str1: " << length << endl;

    // 字符串拷贝
    strcpy(str2, str1);
    cout << "str2: " << str2 << endl;

    // 字符串连接
    strcat(str2, " World");
    cout << "str2: " << str2 << endl;

    // 字符串比较
    int result = strcmp(str1, str2);
    if (result == 0) {
        cout << "str1 and str2 are equal" << endl;
    } else if (result < 0) {
        cout << "str1 is less than str2" << endl;
    } else {
        cout << "str1 is greater than str2" << endl;
    }

    return 0;
}

在上述示例中,我们使用了strlen函数计算字符串的长度,使用strcpy函数进行字符串拷贝,使用strcat函数进行字符串连接,并使用strcmp函数比较两个字符串的大小关系。

运行结果:
在这里插入图片描述

📖 string

C++标准库提供了string类,是对C风格字符串的封装,提供了更加方便和安全的字符串操作。

string类初始化

可以使用以下方式进行string类的初始化:

#include <iostream>
#include <string>
using namespace std;

int main() {
    string str1 = "Hello";   // 字符串字面值初始化
    string str2("World");    // 直接初始化
    string str3(5, 'A');     // 重复字符初始化

    cout << "str1: " << str1 << endl;
    cout << "str2: " << str2 << endl;
    cout << "str3: " << str3 << endl;

    return 0;
}

在上述示例中,我们使用不同的方式对string类进行初始化,并输出字符串的内容。

运行结果:
在这里插入图片描述

string类常见操作

string类提供了丰富的成员函数来进行字符串操作,包括长度计算、拷贝、连接、子串提取等。

#include <iostream>
#include <string>
using namespace std;

int main() {
    string str1 = "Hello";
    string str2 = "World";

    // 字符串长度
    int length = str1.length();
    cout << "Length of str1: " << length << endl;

    // 字符串拷贝
    string str3 = str1;
    cout << "str3: " << str3 << endl;

    // 字符串连接
    string str4 = str1 + " " + str2;
    cout << "str4: " << str4 << endl;

    // 子串提取
    string sub = str4.substr(6, 5);
    cout << "Substring: " << sub << endl;

    // 查找子串
    size_t pos = str4.find("World");
    if (pos != string::npos) {
        cout << "Substring found at position " << pos << endl;
    } else {
        cout << "Substring not found" << endl;
    }

    return 0;
}

在上述示例中,我们使用了length函数计算字符串长度,使用赋值运算符进行字符串拷贝,使用加号进行字符串连接,使用substr函数提取子串,使用find函数查找子串。

运行结果:
在这里插入图片描述

📖 3 字符串类型转换

字符串类型转换在实际开发中非常常见,包括将char类型转换为string类型,将string类型转换为char类型,以及字符串和数字之间的转换。

charstring

可以使用string类的构造函数将char类型转换为string类型:

#include <iostream>
#include <string>
using namespace std;

int main() {
    char ch = 'A';
    string str = string(1, ch);   // 将字符转换为字符串

    cout << "str: " << str << endl;

    return 0;
}

在上述示例中,我们将一个字符'A'转换为字符串类型,并输出结果。

stringchar

可以使用c_str函数将string类型转换为char类型:

#include <iostream>
#include <string>
using namespace std;

int main() {
    string str = "Hello";
    const char* ch = str.c_str();   // 将字符串转换为字符数组

    cout << "ch: " << ch << endl;

    return 0;
}

在上述示例中,我们将一个字符串"Hello"转换为char类型,并输出结果。

string → num(C++11)

在C++11标准中,可以使用stoistofstod等函数将字符串转换为对应的数字类型:

#include <iostream>
#include <string>
using namespace std;

int main() {
    string str = "123";
    int num = stoi(str);      // 字符串转换为整数
    float fnum = stof(str);   // 字符串转换为浮点数
    double dnum = stod(str);  // 字符串转换为双精度浮点数

    cout << "num: " << num << endl;
    cout << "fnum: " << fnum << endl;
    cout << "dnum: " << dnum << endl;

    return 0;
}

<在上述示例中,我们将字符串"123"转换为整数、浮点数和双精度浮点数,并输出结果。

✨ num → string

可以使用to_string函数将数字类型转换为字符串类型:

#include <iostream>
#include <string>
using namespace std;

int main() {
    int num = 123;
    string str = to_string(num);   // 数字转换为字符串

    cout << "str: " << str << endl;

    return 0;
}

在上述示例中,我们将整数123转换为字符串类型,并输出结果。

📖 总结

本篇学习笔记详细介绍了C风格字符串和string类的使用方法,包括字符串的初始化、常见操作以及字符串类型转换。通过学习和掌握这些知识,你可以更加灵活地处理字符串,并在实际编程中运用到字符串操作中。

通过对字符串的学习,我们可以更好地理解和应用字符串相关的函数和类,提高程序的灵活性和可读性。掌握好字符串的处理方法,对于开发高效、稳定的程序非常重要。希望本篇学习笔记对你的学习有所帮助!

🚀 祝你在C++学习的道路上取得更大的进步!

⭐️希望本篇文章对你有所帮助。

⭐️如果你有任何问题或疑惑,请随时向提问。

⭐️感谢阅读!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

逸峰轻云

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

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

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

打赏作者

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

抵扣说明:

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

余额充值