C++字符串和C字符串的对比
(1)C语言严格说没有字符串的概念,C字符串其实就是字符数组或字符指针
(2)C++和之后的java等都有字符串,本质是一个class
(3)C++字符串的优势是标准库自带可用于字符串的各种处理算法和方法
(4)C++实际开发中建议使用C++字符串而不是沿用C式字符串
字符串string类使用
std::string str = "Hello, World!";// 使用 size() 获取字符串长度std::cout << "Size of the string: " << str.size() << std::endl;// 使用 length() 也可以获取字符串长度std::cout << "Length of the string: " << str.length() << std::endl;// 获取字符串的最大容量std::cout << "Max size of the string: " << str.max_size() << std::endl;// 调整字符串大小为 10str.resize(10);std::cout << "Resized string: " << str <<"|"<< std::endl; // 输出 "Hello, Wor"// 获取当前字符串的容量std::cout << "Capacity of the string: " << str.capacity() << std::endl;// 请求字符串的容量至少为 20str.reserve(20);std::cout << "Capacity after reserve: " << str.capacity() << std::endl;// 尝试减少字符串的容量str.shrink_to_fit();std::cout << "Capacity after shrinking: " << str.capacity() << std::endl;// 清空字符串str.clear();std::cout << "String after clear: " << str << std::endl; // 输出 ""// 检查字符串是否为空if (str.empty()) {std::cout << "String is empty." << std::endl;} else {std::cout << "String is not empty." << std::endl;}
std::string str = "12345";int num = std::stoi(str);std::cout << "The integer value is: " << num << std::endl;str = "9876543210";long int num1 = std::stol(str);std::cout << "The long integer value is: " << num1 << std::endl;str = "4294967295"; // Max value of unsigned intunsigned int num2 = std::stoul(str);std::cout << "The unsigned integer value is: " << num2 << std::endl;str = "9223372036854775807"; // Max value of long longlong long num3 = std::stoll(str);std::cout << "The long long value is: " << num3 << std::endl;str = "18446744073709551615"; // Max value of unsigned long longunsigned long long num4 = std::stoull(str);std::cout << "The unsigned long long value is: " << num4 << std::endl;str = "3.14159";float num5 = std::stof(str);std::cout << "The float value is: " << num5 << std::endl;str = "2.718281828459045";double num6 = std::stod(str);std::cout << "The double value is: " << num6 << std::endl;str = "1.4142135623730950488";long double num7 = std::stold(str);std::cout << "The long double value is: " << num7 << std::endl;int num8 = 12345;std::string str1 = std::to_string(num8);std::cout << "The string representation is: " << str1 << std::endl;double num9 = 3.141592653589793238;std::wstring wstr = std::to_wstring(num9);std::wcout << "The wide string representation is: " << wstr << std::endl;return 0;
std::string str = "Hello";// 使用 operator+= 追加字符串str += ", World!";// 使用 append 方法追加字符串str.append(" How are you?");std::cout << "String after append: " << str << std::endl;// 使用 push_back 方法追加字符 '!'str.push_back('!');std::cout << "String after push_back: " << str << std::endl;// 使用 insert 方法在位置 5 插入字符串 ", World"str.insert(5, ", World");std::cout << "String after insert: " << str << std::endl;// 使用 erase 方法从位置 7 开始删除 6 个字符str.erase(7, 6); // 删除 ", World"std::cout << "String after erase: " << str << std::endl;// 使用 replace 方法替换从位置 7 开始的 5 个字符为字符串 "Universe"str.replace(7, 5, "Universe");std::cout << "String after replace: " << str << std::endl;// 使用 pop_back 方法删除最后一个字符 '!'str.pop_back();std::cout << "String after pop_back: " << str << std::endl;// 使用 assign 方法将字符串内容替换为 "Goodbye"str.assign("Goodbye");std::cout << "String after assign: " << str << std::endl;std::string str1 = "Hello";std::string str2 = "World";// 使用 swap 方法交换两个字符串的内容str1.swap(str2);std::cout << "String 1 after swap: " << str1 << std::endl;std::cout << "String 2 after swap: " << str2 << std::endl;
std::string str = "Hello, World!";// 使用 c_str 方法获取 C 字符串等价物的指针const char* cstr = str.c_str();// 使用 data 方法获取字符数组的指针const char* data = str.data();std::cout << "C string equivalent: " << cstr << std::endl;std::cout << "String data: " << data << std::endl;char buffer[20];// 使用 copy 方法将字符串的前 4 个字符复制到字符数组中str.copy(buffer, 4);buffer[4] = '\0'; // 手动添加结尾的 null 字符std::cout << "Copied string: " << buffer << std::endl;// 从位置 7 开始,长度为 5 的子字符串std::string substr1 = str.substr(7, 5); // "World"std::cout << "Substring 1: " << substr1 << std::endl;// 从位置 0 开始直到末尾的子字符串std::string substr2 = str.substr(0); // "Hello, World!"std::cout << "Substring 2: " << substr2 << std::endl;// 从位置 7 开始直到末尾的子字符串std::string substr3 = str.substr(7); // "World!"std::cout << "Substring 3: " << substr3 << std::endl;std::string str1 = "apple";std::string str2 = "banana";// 比较字符串大小int result1 = str1.compare(str2);if (result1 < 0)std::cout << "str1 is less than str2" << std::endl;else if (result1 == 0)std::cout << "str1 is equal to str2" << std::endl;elsestd::cout << "str1 is greater than str2" << std::endl;// 比较子字符串大小int result2 = str1.compare(0, 3, str2, 0, 3); // 比较 "app" 和 "ban"if (result2 < 0)std::cout<< "First 3 characters of str1 are less than first 3 characters of str2"<< std::endl;else if (result2 == 0)std::cout<< "First 3 characters of str1 are equal to first 3 characters of str2"<< std::endl;elsestd::cout << "First 3 characters of str1 are greater than first 3 ""characters of str2"<< std::endl;
总结
熟悉符串string类相关方法的使用
学习记录,侵权联系删除。
来源:朱老师物联网大课堂