# include <iostream>
# include <cstring>
using namespace std;
/**
* C++ 提供了一下两种类型的字符串表示形式:
* C 风格字符串
* C++ 引入的string类类型
*
* C 风格字符串
*
* C 风格的字符串起源于 C 语言,并在 C++ 中继续得到支持。字符串实际上是使用 null 字符 '\0' 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。
* 下面的声明和初始化创建了一个 "Hello" 字符串。由于在数组的末尾存储了空字符,所以字符数组的大小比单词 "Hello" 的字符数多一个。
* char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
* 依据数组初始化规则,您可以把上面的语句写成以下语句:
* char greeting[] = "Hello";
*
* 其实,您不需要把 null 字符放在字符串常量的末尾。C++ 编译器会在初始化数组时,
* 自动把 '\0' 放在字符串的末尾。让我们尝试输出上面的字符串:
*
*/
int main(int argc, char const *argv[])
{
/* code */
char greeting[6] = {'H','e','l','l','o','\0'};
cout<< "Greeting message"<<endl;
cout<<greeting<<endl;
// 字符串操作
char str1[11] = "Hello";
char str2[11] = "World";
char str3[11];
int len;
// 复制 str1到str3 Hello
strcpy(str3, str1);
cout<<"strcpy(str3,str1): "<<str3<<endl;
// 连接str1和str2 HelloWorld
strcat(str1,str2);
cout<<"strcat(str1, str2): "<<str1<<endl;
// 连接后 str1的长度 10
len = strlen(str1);
cout<<"strlen(str1): "<<len<<endl;
return 0;
}
输出如下:
Greeting message
Hello
strcpy(str3,str1): Hello
strcat(str1, str2): HelloWorld
strlen(str1): 10