C 字符串表示方法 :
// ① 字符数组 : 本质是 字符 数组 char[] , 这里注意字符数组要以 NULL 或 '\0' 结尾;
char string_c[] = { 'h', 'e', 'l', 'l', 'o', '\0' };
// ② 指针 : 使用指针形式表示字符串 , 默认末尾增加 '\0' ;
char* string_c_p = "hello";
//字符串打印 :
// ① 打印字符串 , cout 后的 << 后可以打印 字符串 , 也可以打印变量
// ② 输出 cout << 字符串或变量1 << 字符串或变量2 ... << endl 可以拼接 输出信息
cout << "string_c : " << string_c << endl;
cout << "string_c_p : " << string_c_p << endl;
//3. 字符串使用
//C 字符串 表示方法 :
// ① 字符数组 : 本质是 字符 数组 char[] , 这里注意字符数组要以 NULL 或 '\0' 结尾;
char string_c[] = { 'h', 'e', 'l', 'l', 'o', '\0' };
// ② 指针 : 使用指针形式表示字符串 , 默认末尾增加 '\0' ;
char* string_c_p = "hello";
//字符串打印 :
// ① 打印字符串 , cout 后的 << 后可以打印 字符串 , 也可以打印变量
// ② 输出 cout << 字符串或变量1 << 字符串或变量2 ... << endl 可以拼接 输出信息
cout << "string_c : " << string_c << endl;
cout << "string_c_p : " << string_c_p << endl;
string_c : hello
string_c_p : hello
C 字符串 拷贝 方法 ( strcpy ) :
//C 语言中的字符串操作
//拷贝字符串
char string_c_copy_destination[6];
char string_c_copy_source[] = { 'h', 'e', 'l', 'l', 'o', '\0' };
// ① 参数 : strcpy 方法是拷贝字符串的方法 , 第一个参数是目标字符串 , 第二个参数是源字符串
// ② 作用 : 该方法是将 源字符串 拷贝到 目标字符串中
strcpy(string_c_copy_destination, string_c_copy_source);
// ③ 打印拷贝结果 :
cout << "string_c_copy_destination : " << string_c_copy_destination << endl;
C 字符串 拼接 ( strcat ) :
//拼接字符串
//① 定义目标字符串 : 拼接字符串的目标字符串的大小一定要大于等于要拼接的两个字符串大小之和, 否则会报错
char string_c_cat_destination[30] = " cat dst ";
char string_c_cat_source[] = " cat src ";
//② 拼接字符串方法参数 : 第一个参数是目标字符串 , 第二个参数是源字符串
//③ 目标字符串大小 : 注意 目标字符串的 大小一定要大于 两个字符串实际大小
strcat(string_c_cat_destination, string_c_cat_source);
//④ 打印字符串拼接结果 :
cout << "string_c_cat_destination : " << string_c_cat_destination << endl;
C 字符串 长度获取 ( strlen ) :
char string_c_len2[20] = { 'h', 'e', 'l', 'l', 'o', '\0' };
//获取字符串长度
//① 参数 : 传入要获取的字符串 , 该长度不含 '\0' 结尾标志
//② 作用 : 获取实际的字符串长度 , 即自动识别 '\0' 位置
// 获取其长度 , 与所占用的内存大小无关
char string_c_len[] = { 'h', 'e', 'l', 'l', 'o', '\0' };
char string_c_len2[20] = { 'h', 'e', 'l', 'l', 'o', '\0' };
char * string_c_len3 = "hello";
//① 字符数组长度 , 测量从开始到 '\0' 的长度, 不包括 '\0'
int len1 = strlen(string_c_len);
//② 指定大小的字符数组长度 , 结果不是指定的大小的值 , 获取的是实际字符串长度
int len2 = strlen(string_c_len2);
//③ 指针表示的字符串 , 其获取的大小是实际字符串大小, 不包含自动添加的 '\0'
int len3 = strlen(string_c_len3);
//④ 打印 三个字符串大小
cout << "len1 : " << len1
<< " len2 : " << len2
<< " len3 : " << len3
<< endl;
C 字符串 对比 ( strcmp ) :
//字符串比较
// ① 参数说明 : 参数是需要比较的两个字符串 , 第一个参数 str1 , 第二个参数 str2
// ② 对比规则 : str1 和 str2 两个字符串 , 从左到右 逐个对比 ASCII 码 大小 ;
// a. 如果 str1 等于 str2 , 返回 0;
// b. 如果 str1 > str2 , 返回值 大于 0 ;
// c. 如果 str1 < str2 , 返回值 小于 0 ;
//定义需要比较的字符串
char* string_c_comp_1 = "Hello";
char* string_c_comp_2 = "Hello";
char* string_c_comp_3 = "hello";
// ① 两个字符串相等
int cmp_result_1_2 = strcmp(string_c_comp_1, string_c_comp_2);
// ② "Hello" 字符串 (H 对应 ASCII 72) 小于 "hello" 字符串 (h 对应 ASCII 104) , 返回值 小于 0
int cmp_result_1_3 = strcmp(string_c_comp_1, string_c_comp_3);
// ③ "hello" 字符串 (h 对应 ASCII 104) 大于 "Hello" 字符串 (H 对应 ASCII 72) , 返回值 大于 0
int cmp_result_3_1 = strcmp(string_c_comp_3, string_c_comp_1);
//输出字符串对比结果
cout << "cmp_result_1_2 : " << cmp_result_1_2
<< " cmp_result_1_3 : " << cmp_result_1_3
<< " cmp_result_3_1 : " << cmp_result_3_1
cmp_result_1_2 : 0 cmp_result_1_3 : -1 cmp_result_3_1 : 1