6 数组与字符串|Ch2 C/C++|算法笔记

本文详细介绍了在C语言中如何处理大型数组,包括数组的内存分配策略,使用memset和fill函数初始化数组的方法,以及字符数组的初始化、输入、输出技巧。此外,还深入探讨了string.h头文件中的关键函数,如strlen、strcmp、strcpy、strcat等的用法,以及sscanf和sprintf函数的正则表达式支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果数组大小较大(大概10610^6106级别),需要将其定义在主函数外。(函数内部申请的局部变量来自系统栈,而函数外部申请的全局变量来自静态存储区)

memset

使用memset为数组赋相同值。需要添加string.h头文件。只建议初学者使用该函数赋0和-1。如果要赋其他值可使用fill函数。

memset(数组名,, sizeof(数组名));

字符数组

初始化

char str[15] = {'G', 'o', 'o', 'd', ' ', 's', 't', 'o', 'r', 'y', '!' };
char str[15] = "Good Story!";
char *str = "Good Story!";

输入

函数名格式数量识别空格识别换行
scanf%c字符
^%s字符串否,以其为结束否,以其为结束
getchar字符
gets字符串否,以其为结束

输出

函数名数量
printf字符/字符串
putchar字符
puts字符串

提醒:如果不是使用scanf函数的%s格式或者gets函数输入字符串,要在每个字符串的后面加入\0,否则printfputs输出字符串会因无法识别字符串末尾而输出一大堆乱码。

string.h头文件

函数名功能
strlen()得到字符数组中第一个\0前的字符的个数
strcmp()返回两个字符串大小的比较结果
strcpy(str_to, str_from)把一个字符串赋值给另一个字符串
strcat()把一个字符串接到另一个字符串后面

sscanf与sprintf

sscanf(str, "%d", &n);
sprintf(str, "%d", n);

sscanf支持正则表达式。

以数组作为函数参数

参数中的第一维不需要填写长度。即如果是二维数组,则第二维需要填写长度。

数组可以作为参数,但是不可作为返回类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值