字符操作函数梳理,采用指针操作字符

本文介绍了指针在字符串操作中的应用,包括移动指针、浅拷贝与深拷贝的区别,以及常见的字符串处理函数如strcpy、strncpy、strcat、strcmp等的用法和功能。
摘要由CSDN通过智能技术生成

指针操作字符串:

指针指向字符串的某一个字符,移动指针多少位置,指针就更新指向对应位置的字符串。

	char* sub[2] = { 0 };
	char* p1 = (char*)malloc(8);
	strcpy(p1, "dafveasd");
	int len = strlen(p1);
	p1 = p1 + len - 1;    //这时候p1移动了len-1的位置,就指向了末尾
	p1[1] = '\0';         //p[0]是最后一个字符位置,p[1]自然就是字符后面的'\0'
	sub[0] = p1;          //sub[0]中也要存一个char*,存p1,取值时就是取到'\0'结束

以上代码,利用指针的位移,指针到数组的转换来操作字符串。感觉一系列操作相当巧妙。

字符串的赋值

char* a1 = "refwvtrtb";这种串赋值永远是常量,a1是不能被改变的。

'='和strcpy,memcpy赋值的区别

=对于字符串的操作,永远是浅拷贝,可以利用=赋值之后的字符串操作原字符串。

strcpy和memcpy均是深拷贝。它俩的区别是strcpy只拷贝字符串,memcpy都可以拷贝。用这俩个个深拷贝之后,源字符串和拷贝后的字符串操作就互不影响了。

字符串操作函数记录

函数名: strcpy
功  能: 将参数src字符串拷贝至参数dest所指的地址
用  法: char *strcpy(char *dest, const char *src);

函数名: strncpy
功  能: 将字符串src前n个字符拷贝到字符串dest
用  法: char *strncpy(char *dest, const char *src, size_t n);

函数名: strcat
功  能: 字符串拼接函数
用  法: char *strcat(char *dest, const char *src);

函数名: strncat
功  能: 将n个字符追加到字符串的结尾
用  法: char *strncat(char *dest, const char *src, size_t n);

函数名: strcmp
功  能: 字符串比较
用  法: int strcmp(const char *s1, const char *s2);
注意:strcasecmp

函数名: strncmp
功  能: 比较 s1 和 s2 前n个字符的大小,比较的是字符ASCII码大小。
用  法: int strncmp(const char *s1, const char *s2, size_tn);

函数名: strchr
功  能: 在一个字符串中查找给定字符的第一个匹配之处
用  法: char *strchr(const char *str, int c);
注意:_tcschr

函数名: strpbrk
功  能: 返回两个字符串中首个相同字符的位置
用  法: char *strpbrk(char *s1, char *s2);

函数名: sprintf
功  能: 根据参数format字符串来转换并格式化数据,然后将结果输出到str指定的空间中,
        直到出现字符串结束符 '\0' 为止。
用  法: int sprintf(char *str , const char *format, ...);

函数名: sscanf
功  能: 从str指定的字符串读取数据,并根据参数format字符串来转换并格式化数据。
用  法: int sscanf(const char *str, const char *format, ...);

函数名: strtok
功  能: 根据分界符将字符串分割成一个个片段
用  法: char *strtok(char *s, const char *delim);

函数名: strstr
功  能: 检索子串在字符串中首次出现的位置
用  法: char *strstr( char *str, char * substr );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值