语言字符串操作之strlen、strcpy 、strncpy、strcat 、strncat、strcmp、strncmp

字符串的操作主要包含字符串的拷贝、连接、比较、切割、变换等操作。

//字符串操作函数
	#include <string.h>    //使用这些函数需要包含的头文件
	1.strlen          	   //测量字符串的长度,不包含结束符
	2.strcpy/strncpy       //字符串拷贝
	3.strcat/strncat       //连接
	4.strcmp/strncmp       //比较
//共同特点:遇到'/0'自动结束

strlen长度测量
函数原型 size_t strlen(const char *);
举例如下:

char buf[128]="abcd";
int size=sizeof(buf)      size值为128
int strlong=strlen(buf)   size值为4
    
char buf[]="abcd";
int size=sizeof(buf)      size值为5
int strlong=strlen(buf)   size值为4
    
char buf[]="abcd\0he";
int size=sizeof(buf)      size值为8
int strlong=strlen(buf)   size值为4
    
char buf[]="abcd\123\\he";
int size=sizeof(buf)      size值为9
int strlong=strlen(buf)   size值为8
    
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。 可以转义三位
    
而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。
'\\'表示'\'
\xdd  十六进制转义,0~9,a~f 不能超过一个字节    
字符串长度为0不代表字符串为空,也可能以’\0‘开头

strcpy 、strncpy拷贝

原型  char *strcpy(char *dest, const char *src)    把 src 所指向的字符串复制到 dest。
	  //需要注意的是如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。   
    
原型  char *strncpy(char *dest, const char *src, size_t n) 
	  //把 src 所指向的字符串复制到 dest,最多复制 n 个字符。当 src 的长度小于 n 时,dest 的剩余部分将用空字节填充。 

strcat 、strncat 字符串拼接

函数原型  char *strcat(char *dest, const char *src) 
	     //把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。
    	 //dest -- 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串。
    	 //src  -- 指向要追加的字符串,该字符串不会覆盖目标字符串。
    
函数原型  char *strncat(char *dest, const char *src, size_t n) 
    	 //把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止。
    	 //dest -- 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串,包括额外的空字符。
    	 //src  -- 要追加的字符串。
    	 /n -- 要追加的最大字符数。

strcmp、strncmp字符串比较
两个字符串自左向右逐个字符相比(按 ASCII 值大小相比较),直到出现不同的字符或遇 \0 为止。
当两个字符串不相等时,C 标准没有规定返回值会是 1 或 -1,只规定了正数和负数。
有些会把两个字符的 ASCII 码之差作为比较结果由函数值返回。但不能以此条依据作为程序中的流程逻辑。

原型  int strcmp(const char *str1, const char *str2) 
      把 str1 所指向的字符串和 str2 所指向的字符串进行比较。
      str1 -- 要进行比较的第一个字符串。
      str2 -- 要进行比较的第二个字符串。
    
该函数返回值如下:
如果返回值小于 0,则表示 str1 小于 str2。
如果返回值大于 0,则表示 str1 大于 str2。
如果返回值等于 0,则表示 str1 等于 str2。
     
原型  int strncmp(const char *str1, const char *str2, size_t n) 
      把 str1 和 str2 进行比较,最多比较前 n 个字节。
      str1 -- 要进行比较的第一个字符串。
      str2 -- 要进行比较的第二个字符串。
      n -- 要比较的最大字符数。
    
该函数返回值如下:
如果返回值 < 0,则表示 str1 小于 str2。
如果返回值 > 0,则表示 str2 小于 str1。
如果返回值 = 0,则表示 str1 等于 str2。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值