#include <bits/stdc++.h>
using namespace std;
char arr[1000];
char arr1[1000];
char arr2[1000];
int main() {
// 1、字符数组的基本操作
// memset(arr, 0, sizeof(0)); // 定义局部变量数组,务必置零
// cin >> arr; // cin 输入字符数组,遇空格或回车停止
cin.getline(arr, sizeof(arr)); // cin.getline 整行输入字符数组,遇回车停止
// arr[5] = '\0'; // 字符串 遇 '\0' 结束
cout << arr << endl; // 输出 字符数组
cout << "strlen = " << strlen(arr) << endl; // 字符数组的有效长度
cout << "sizeof = " << sizeof(arr) << endl; // 字符数组的定义长度
// 逐个字符 批量数组字符数组
for (int i = 0; i < strlen(arr); i++) {
cout << arr[i] << " ";
}
cout << endl;
// 2、字符 常用处理函数
char c;
cin >> c;
cout << "isdigit : " << isdigit(c) << endl; // 判断数字字符
cout << "isalpha : " << isalpha(c) << endl; // 1 大写字母, 2 小写字母, 0 不是字母
cout << "isalnum : " << isalnum(c) << endl; // 判断 字母 或 数字
cout << "islower : " << islower(c) << endl; // 判断 小写字母
cout << "isupper : " << isupper(c) << endl; // 判断 大写字母
cout << "tolower : " << char(tolower(c)) << endl; // 转换 小写字母
cout << "toupper : " << char(toupper(c)) << endl; // 转换 大写字母
/*
测试输出:
E
isdigit : 0
isalpha : 1
isalnum : 1
islower : 0
isupper : 1
tolower : e
toupper : E
*/
// 3、字符数组 常用处理函数
// (1) strcat 字符数组 拼接
cin >> arr1 >> arr2;
strcat(arr1, arr2); // 后面数组 拼接到 前面数组
cout << arr1 << endl;
cout << arr2 << endl;
// 拼接到 第三方字符数组
strcat(arr, arr1);
strcat(arr, arr2);
cout << arr << endl;
// (2) strcpy 字符串复制
cin >> arr1 >> arr2;
strcpy(arr1, arr2); // 后面数组 复制到 前面数组
cout << arr1 << endl;
cout << arr2 << endl;
// (3) strcmp 字符串比较 :1 大于 , 0 等于 , -1 小于
cin >> arr1 >> arr2;
cout << strcmp(arr1, arr2) << endl; // 逐位比较 ASCII : 1 大于 , 0 等于 , -1 小于
return 0;
}