首页 > 代码库 > 字符串 上

字符串 上

字符串

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

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

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

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

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



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

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

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



字符串 存储

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

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


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

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

    

字符串 函数返回

1.形参方式返回

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





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


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




返回乱码


字符串 比较



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

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

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

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

返回 string1所有字符和string2相同

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


strncmp

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

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

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


字符串  连接



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

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

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



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

字符串 复制



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

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

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



TIPS:注意点

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



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