字符串 上

字符串

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

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

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

C中字符串能够分配于栈空间、堆空间或者仅仅读存储区

C中字符串常量表示一块包含字符串中全部字符以及一个空字符('')的内存区域的地址



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

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

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



字符串 存储

字符数组存储字符串.储存在栈中,能够改动随意一字符

指针存储字符串.指针存储在栈中,字符串存储在仅仅读存储区.栈中指针存储字符串首地址.不可改动随意一字符


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

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

    

字符串 函数返回

1.形參方式返回

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





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


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




返回乱码


字符串 比較



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

返回时刻:遇到同位置不同字符或者''

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

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

返回 string1全部字符和string2同样

strcmp不会改动參数值,但依旧以‘’作为结束符
     


strncmp

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

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

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


字符串  连接



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

strncat总是在结果字符串后面加入‘’

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



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

字符串 复制



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

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

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



TIPS:注意点

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



strncpy仅仅用于字符串复制,而且包括字符串的结束符



原文地址:https://www.cnblogs.com/wzjhoutai/p/6708817.html