在 C++ 中,C 风格的字符串通常指的是以 null 结尾的字符数组,也称为 C 字符串(C-style string)。这种字符串是由一系列字符组成的,以空字符 '\0'
结尾,用于表示字符串的结束。在 C++ 中,可以使用字符数组来定义和操作 C 风格的字符串,也可以使用相关的标准库函数来进行操作。
#include <iostream>
#include <cstring> // 包含 C 字符串相关的标准库头文件
int main() {
// 定义一个 C 风格的字符串
char str[] = "Hello, world!";
// 打印字符串
std::cout << "String: " << str << std::endl;
// 计算字符串长度(不包括结尾的空字符)
std::cout << "Length: " << strlen(str) << std::endl;
// 拷贝字符串
char dest[20];
strcpy(dest, str);
std::cout << "Copied string: " << dest << std::endl;
// 连接字符串
strcat(dest, " Welcome!");
std::cout << "Concatenated string: " << dest << std::endl;
// 比较字符串
char str2[] = "Hello, world!";
if (strcmp(str, str2) == 0) {
std::cout << "Strings are equal" << std::endl;
} else {
std::cout << "Strings are not equal" << std::endl;
}
// 定义一个指向 C 风格字符串的指针
const char* str_ptr = "Hello, world!";
// 打印字符串
std::cout << "String: " << str_ptr << std::endl;
// 计算字符串长度(不包括结尾的空字符)
std::cout << "Length: " << strlen(str_ptr) << std::endl;
// 比较字符串
const char* str_ptr2 = "Hello, world!";
if (strcmp(str, str_ptr2) == 0) {
std::cout << "Strings are equal" << std::endl;
} else {
std::cout << "Strings are not equal" << std::endl;
}
return 0;
}
参考: