### 标准输入输出 ```c #include /* scanf 格式化输入 printf 格式化输出 getchar 读取单个字符 putchar 输出单个字符 gets 读取一行字符串 空格也会读入 puts 输出字符串(会自带一个换行) */ int main(){ char str[100]; /* scanf("%s", str);//占位符遇到空格结束 */ gets(str);//读取一行字符串 printf("%s\n", str); return 0; } ``` ### 字符串处理 ```c #include #include /* strlen 返回当前字符串长度 以结束符为标记 strcpy(目标串, 需要复制的串) 复制字符串 strncpy(目标串, 需要复制的串) 复制指定长度的字符串 strcat(字符串1, 字符串2) 拼接两个字符串,相当于在字符串1后加上字符串2后返回字符串1的首地址 strncat(字符串1, 字符串2) 拼接指定长度字符串(字符串2的长度) */ int main(void){ /* 烫烫烫:未初始化的字符数组打印出来 屯屯屯:未初始化的堆空间(C++) 锟斤拷:将GBK字符编码的文字转换为UTF-8后再转换成GBK */ char *str = "HelloWolrd";//指向一个字符串常量的首地址 char str2[20]; char str3[20]; char *str4; char str5[20] = ""; strcpy(str2, str);//将字符串str的数据复制到str2这个字符数组中 strncpy(str3, str, 5);//复制str中的前5个字符到str3中 str3[5] = '\0';//设置结束标记 puts(str2);//会一直打印字符直到遇到字符串结束标记 puts(str3); str4 = strcat(str2, str3);//str4相当于指向str2的首地址 puts(str2);//打印str2字符数组 puts(str4);//str4是一个字符串指针 指向str2的首个元素 strncat(str5, str3, 3);//将str5和str3中的三个字符拼接起来并存储在str5中 puts(str5);//打印str5 return 0; } ```