码迷,mamicode.com
首页 > 其他好文 > 详细

字符串 上

时间:2014-07-18 21:39:21      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:c   string   

字符串

从概念上讲,C中没有字符串数据类型

C中使用字符数组来模拟字符串

C中字符串是以‘\0’结束的字符数组

C中字符串可以分配于栈空间、堆空间或者只读存储区

C中字符串常量表示一块包括字符串中所有字符以及一个空字符(‘\0‘)的内存区域的地址

bubuko.com,布布扣
bubuko.com,布布扣

字符串长度就是字符串所包含字符的个数

C中字符串长度指的是第一个‘\0’字符前出现的字符个数

C通过‘\0’结束符来确定字符串的长度

bubuko.com,布布扣
bubuko.com,布布扣

字符串 存储

字符数组存储字符串.储存在栈中,可以修改任意一字符

指针存储字符串.指针存储在栈中,字符串存储在只读存储区.栈中指针存储字符串首地址.不可修改任意一字符


字符串传递
 
1.若函数要修改此字符串,则使用字符数组存储

2.若函数仅是使用,则使用指针存储,并使用const属性

bubuko.com,布布扣bubuko.com,布布扣    

字符串 函数返回

1.形参方式返回

2.在函数中使用static修饰要返回的字符数组指针

bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣


TIPS:千万不要返回函数局部变量栈中指针内容


3.返回字符数组存储局部变量

bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣

返回乱码


字符串 比较

bubuko.com,布布扣
bubuko.com,布布扣

比较字符串string1和string2    < 大小写混合亦可 >

返回时刻:遇到同位置不同字符或者‘\0‘

返回1   string1返回点字符在string2后面

返回-1  string1返回点字符在string2前面

返回 string1所有字符和string2相同

strcmp不会修改参数值,但依然以‘\0’作为结束符
     
bubuko.com,布布扣
bubuko.com,布布扣

strncmp

限定n个字符比较    <大小写混合亦可>

返回时刻:遇到同位置不同字符、n个字符或者‘\0‘

谨记:安全起见,建议使用strncmp 函数


字符串  连接

bubuko.com,布布扣
bubuko.com,布布扣

strncat最多从源字符串中复制len个字符到目标串中

strncat总是在结果字符串后面添加‘\0’

strncat不会用‘\0’填充目标串中的剩余空间

bubuko.com,布布扣
bubuko.com,布布扣

谨记:安全起见,建议使用strncat 函数

字符串 复制

bubuko.com,布布扣
bubuko.com,布布扣

strncpy只复制len个字符到目标字符串

当源字符串的长度小于len时,剩余的空间以‘\0’填充

当源字符串的长度大于len时,只有len个字符串会被复制,且将不会以‘\0’结束

bubuko.com,布布扣
bubuko.com,布布扣

TIPS:注意点

使用strncpy复制字符串给字符数组,首先应清空字符数组,避免出现末尾乱码

bubuko.com,布布扣
bubuko.com,布布扣

strncpy只用于字符串复制,并且包含字符串的结束符



字符串 上,布布扣,bubuko.com

字符串 上

标签:c   string   

原文地址:http://blog.csdn.net/fly136351209/article/details/37884865

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!