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

1.7 KiB
Raw Blame History

标准输入输出

#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;
}

字符串处理

#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;
}