字符串知识点checklist

知识点checklist

1、 strlen()函数的返回值是什么类型的?

2、 字符串strlen() 的值,是否和他占据的内存空间相同?

3、 你是否知道strcpy 函数存在的潜在风险?如何避免?

4、 如果一个字符串没有字符串结束符,而调用str 开头的库函数,会发生什么?

5、 Strcpy(),strcat(),strcmp(),strncpy(),strncat(),strncmp()内部到底是如何运行的?这些函数到底对源字符串和目标字符串做了些什么?你是否观察过它们运行时两个字符串内存的变化?

6、 上面这些函数使用时,各有哪些需要注意的地方?

7、 你会几种字符串查找操作?

8、 c语言中有字符串这个数据类型吗?

9、 对字符串进行操作的时候,是否为字符串结尾符预留存储位置?不然的话容易造成非常访问内存。

 

Answer:

1. unsigned int类型。

2. 不是,比实际占用内存少1个字节,缺少'/0'占用的空间。

3. strcpy(string1,string2);将string1复制到string2中,这个复制包含'/0'。风险之一就是string2的长度比string1长的话,string1就不包含'/0',没有结束符号会在以后使用中带来很大的问题。

4. 函数会在内存中一直向下寻找'/0'字符,直至找到,导致访问越界。

5. 待添加。 6. 待添加。 7. 待添加。

8. C中是使用字符数组或者字符指针代替字符串的,其中字符指针是const的。 9. 不会自动预留,需要我们在分配空间时多分配一个空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值