C字符串操作常见不良习惯
2009-04-02 15:19
162 查看
1.对同一字符串,多次调用strlen().
strlen()是一个很昂贵的操作,字符串越长越昂贵,所以应该只调用一次,如果下次要使用该值,则将其存到一个变量中.
2.大量使用 strcat()
每调用一次strcat(), 其内部调用strlen()一次,代价很高昂.
3.使用strncpy()拷贝字符串,并且n很大,实际的字符串经常很短
如果源字符串长度(设为m)短于n,
则拷贝之后的目标字符串后面的(n-m)字节内存会被memset()为0,很多时候我们的程序是不需要这种功能的.但如果这确实是你需要的,那没有问
题.另外,注意,如果m大于等于n, 则目标字符串末尾不会添加'/0'.
4.自己编写与上节所列函数功能雷同或类似的函数
很多人不知道上述一些函数,当需要类似功能的时候,则自己编写. 99%的情况是,自己编写的函数比上述函数慢,容易产生bug, 别人不易理解.
5.自己编写的字符串操作函数,参数应该加const的没有加
很多时候我们需要自己编写函数操作字符串,该函数并不会修改传入的字符串参数,就应该在参数前加const限定符.
strlen()是一个很昂贵的操作,字符串越长越昂贵,所以应该只调用一次,如果下次要使用该值,则将其存到一个变量中.
2.大量使用 strcat()
每调用一次strcat(), 其内部调用strlen()一次,代价很高昂.
3.使用strncpy()拷贝字符串,并且n很大,实际的字符串经常很短
如果源字符串长度(设为m)短于n,
则拷贝之后的目标字符串后面的(n-m)字节内存会被memset()为0,很多时候我们的程序是不需要这种功能的.但如果这确实是你需要的,那没有问
题.另外,注意,如果m大于等于n, 则目标字符串末尾不会添加'/0'.
4.自己编写与上节所列函数功能雷同或类似的函数
很多人不知道上述一些函数,当需要类似功能的时候,则自己编写. 99%的情况是,自己编写的函数比上述函数慢,容易产生bug, 别人不易理解.
5.自己编写的字符串操作函数,参数应该加const的没有加
很多时候我们需要自己编写函数操作字符串,该函数并不会修改传入的字符串参数,就应该在参数前加const限定符.
相关文章推荐
- SEO操作常见的四点不良习惯【摘】
- SEO操作常见的四点不良习惯
- C语言字符串常见操作-strcpy、strlen、strcat和strcmp实现
- JavaScript中常见的字符串操作函数及用法
- 常见的字符串操作
- 字符串常见操作
- shell脚本中字符串的常见操作及"command not found"报错处理(附源码)
- java中常见字符串操作函数
- ios NSString常见的字符串操作 分割 查找
- c语言中字符串操作常见错误及调试方法
- Python中字符串常见操作总结
- 常见字符串操作函数封装
- python中常见的字符串操作
- Python常见字符串处理操作
- 字符串操作常见函数
- JavaScript中常见的字符串操作函数及用法
- 常见问题及解决办法 整理之3(字符串相关操作)
- Python:常见操作字符串的函数
- oracle编程、操作不良习惯总结
- C语言常见编程操作,却有很多需要留心细节(字符串连接操作)