字符串02

拼接函数strcat和strncat

strcat格式:char* strcat(char *s1, const char *s2);

将字符串s2追加到字符数组s1中字符串的末尾,返回s1的值。注意s1的剩余空间长度要>=s2,否则无法复制’\0’结束标识

strncat格式:char* strncat(char *s1, const char *s2, size_t n);

如果s2的长度 >= n, 则’\0’ 结束标志无法复制,s1可能无结束标志

如果s2的长度 <n, 则系统后面自动填充’\0’

如果s2需要完整复制,则n必须等于s2的字符长度+1

比较函数strcmp和strncmp

strcmp格式:int strcmp(const char *s1, const char *s2)

比较字符串s1和s2,s1 = s2返回0; s1>s2返回大于0; s1<s2返回小于0

strncmp格式:int strncmp(const char *s1, const char *s2, size_t n)

将字符串s1中至多n个字符和字符串s2比较,s1 = s2返回0; s1>s2返回大于0; s1<s2返回小于0

字符查找函数strchr

strchr格式:char * strchr(const char *str, int val);

确定字符val在字符串str中第一次出现的地方,若找到返回指向str中val的指针,否则返回NULL

反向查找函数strrchr

strrchr格式:char* strrchr(const char *str, int ch);

确定字符ch在字符串str中最后一次出现的地方,若找到返回指向str中ch的指针,否则返回NULL

查找包含子串某个字符函数strpbrk

strpbrk格式:char* strpbrk(const char *str, const char *control);

检索字符串str中第一个匹配字符串control中的某个字符,不包含空结束字符。也就是说,依次检验字符串str中的字符,当被检验字符在字符串control中也包含时,则停止检验,并返回该字符位置指针。否则返回NULL

//自己实现strpbrk函数 
#include<stdio.h>
#include<string.h>
char *strpbrk_s(char *str1, char *str2)
{
	int i, j, len1 = strlen(str1), len2 = strlen(str2);
	for(i = 0; i < len1; i++)
	{
		for(j = 0; j < len2; j++)
		{
			if(str1[i] == str2[j])
			{
				return &str1[i];
			}
		}
	}
	return NULL;
}

int main()
{
	
	char str1[] = "abcde2fghi3jk4l";
	char str2[] = "34";
	char *ret;
	
	ret = strpbrk_s(str1, str2);
	if(ret) 
	{
		printf("第一个匹配的字符是: %c\n", *ret);
		printf("%s\n", ret);
		printf("%p\n", str1);
		printf("%p\n", ret);
	}
	else 
	{
		printf("未找到字符");
	}
	return 0;
}	

查找包含子串函数strstr

strstr格式:char* strstr(const char * str, const char *substr);

确定字符串substr在字符串str中首次出现的位置,若找到了,返回指向str中substr位置的指针

函数strcspn与strspn

strcspn格式:int strcspn(char * str, char * control);

检索字符串str开头有几个字符都不含字符串control中的字符

strspn格式:int strspn(char * str, char * control);

检索字符串str中第一个不在字符串control中出现的字符下标

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值