class-notes/2207/C语言/标准库函数.md
2025-02-20 22:02:41 +08:00

68 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### 标准输入输出
```c
#include <stdio.h>
/*
scanf 格式化输入
printf 格式化输出
getchar 读取单个字符
putchar 输出单个字符
gets 读取一行字符串 空格也会读入
puts 输出字符串(会自带一个换行)
*/
int main(){
char str[100];
/*
scanf("%s", str);//占位符遇到空格结束
*/
gets(str);//读取一行字符串
printf("%s\n", str);
return 0;
}
```
### 字符串处理
```c
#include <stdio.h>
#include <string.h>
/*
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;
}
```