字符串 上

23 篇文章 0 订阅
字符串

从概念上讲,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只用于字符串复制,并且包含字符串的结束符



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值