C++ 比C语言增加的新特性 5 之字符串string

1.  c++ 的string类型

1.1 创建和初始化字符串

string.cpp

#include "iostream"
#include 

using namespace std;


//创建和初始化字符串
int main() {
    // 初始化空字符串
    string emptyString;

    // 使用字符串字面量初始化字符串
    string greeting = "hello, ";

    // 连接字符串
    string name = "world";
    string message = greeting + name;

    cout << message << endl;  // 输出 "hello,world"

    return 0;
}

C++ 比C语言增加的新特性 5 之字符串string_第1张图片

2 字符串操作

2.1 计算长度,判断空,访问单个字符

string.cpp

//字符串操作
int main() {
    string str = "C++ Programming";

    // 获取字符串长度
    cout << "Length: " << str.length() << endl; //15

    // 检查字符串是否为空
    if (!str.empty()) {
        cout << "Not empty" << endl;
    }

    // 访问单个字符
    char firstChar = str[8];
    cout << "First character: " << firstChar << endl;

    // 修改字符串
    str[8] = 'P';
    cout << "Modified string: " << str << endl;

    return 0;
}

C++ 比C语言增加的新特性 5 之字符串string_第2张图片

2.2   at()函数

用于访问字符串中指定位置的字符。与使用数组下标访问字符不同的是,at() 函数会检查索引是否越界,如果越界则抛出 std::out_of_range 异常。

string.cpp

//at()函数
int main() {
    string myString = "Hello,World!";

    try {

        //普通方法访问单个字符
        char str = myString[1];
        cout << "下标1的字符是:" << str << endl;

        // 使用at()函数访问指定位置的字符
        char character = myString.at(4);//访问下标为7的字符   o
        cout << "Character at position 7: " << character << endl;

        // 尝试访问越界的位置
        char outOfRange = myString.at(20);  // 这里会抛出 std::out_of_range 异常
    }
    catch (const std::out_of_range& e) {
        cerr << "异常信息为: " << e.what() << endl;
    }

    return 0;
}

C++ 比C语言增加的新特性 5 之字符串string_第3张图片

2.3 字符串查找和截取

string.cpp

//字符串查找和截取
int main() {
    string sentence = "The quick brown fox jumps over the lazy dog";

    // 查找子字符串
    size_t found = sentence.find("fox");
    if (found != string::npos) {
        cout << "开始的下标为: " << found << endl;  //16开始
    }

    // 截取子字符串
    string substring = sentence.substr(16, 5);  // "brown"
    cout << "Substring: " << substring << endl; //fox j

    return 0;
}

C++ 比C语言增加的新特性 5 之字符串string_第4张图片

2.4 append() 函数:

用于在字符串末尾追加另一个字符串。

std::string str1 = "Hello";
std::string str2 = " World";
str1.append(str2);  // 在 str1 的末尾追加 str2

2.5 字符串比较:

== 运算符:

用于比较两个字符串是否相等

std::string str1 = "Hello";
std::string str2 = "World";
if (str1 == str2) {
    // 字符串相等
} else {
    // 字符串不相等
}

<, >, <=, >= 运算符:

这些运算符用于直接比较字符串的大小关系。

返回的结果是布尔值(true 或 false)。

这些运算符比较的是字符串的字典序(按照字符的ASCII码值进行比较)。

compare() 函数:

compare() 函数返回一个整数,表示两个字符串的比较结果。

返回值为 0 表示字符串相等,小于 0 表示调用该函数的字符串小于参数字符串,大于 0 表示调用该函数的字符串大于参数字符串。

可以通过比较返回值的大小来确定字符串的大小关系。

string.cpp

//字符串比较
int main()
{
	string str1 = "Hello";
	string str2 = "World";
	if (str1 == str2) {
		// 字符串相等
		cout << "相等" << endl;
	}
	else {
		// 字符串不相等
		cout << "不相等" << endl;
	}

	int ret = str1.compare(str2);  //这里的compare判断的是字符大小
	if (ret==0) {
		cout << "str1 等于 str2" << endl;
	}
	else if (ret<0) {
		cout << "str1 小于 str2"< str2) {
		// str1 大于 str2
		cout << "str1 大于 str2" << endl;
	}
	else {
		// 字符串相等
		cout << "str1 等于 str2" << endl;
	}

	return 0;
}

C++ 比C语言增加的新特性 5 之字符串string_第5张图片

你可能感兴趣的:(C++,c++,linux,c语言)