STR类函数的学习心得 (1)

strlen(求字符串长度)

学习中接触比较多的STR类函数。

比较基础的方法就是通过计数器来求得字符串长度,代码如下

int my_strlen(const char* str)
{
	int count = 0;
	assert(str != NULL);
	while (*str != '\0')
	{
		count++;
		str++;
	}
	return count;
}

其函数实现只需一个参数即可。

strcpy(字符串的复制)

strcpy函数也是平常使用较多的函数,其特点就是strcpy函数在执行的时候会把"\0"一起拷贝到目标数组中。验证方法可以是在目标数组中置入较多"#"符号,拷贝少量内容到目标数组能得以体现。

需要注意的是,在平常使用过程中,一定要保证目标空间足够大,否则程序将会出现错误。

strcat(字符串的追加)

strcat函数顾名思义就是在原有的基础上继续追加字符串

例:arr1[20] = "abcd";

arr2[]="efg";

strcat(arr1,arr2);

其结果显示:arr1 = "abcdefg"

函数实现需要使用两个参数 目标参数 追加参数

函数实现如下

char* my_strcat(char* dest, const char* src)
{ 
	char* ret = dest;
	assert(dest && src);
	while (*dest)
	{
		*dest++;
	}
	//追加字符串
	while (*dest++ = *src++)
	{
	}
	return ret;
}

类似的,使用过程中需要注意目标空间的大小是否足够追加.

strcmp(字符串大小比较)

strcmp函数比较有意思,它的作用就是比较两个字符串的大小,但要注意的是不是比较字符串的长度,而是比较两个字符串对应位置的字符的ascll码值的大小,如需比较的两个字符ascll码值不同,则直接得出大小而不继续对剩下的字符进行比较。当一直比较到其中一个函数的"\0"时,函数也会停止得出结果。

其函数实现如下:

int my_strcmp(const char* arr1, const char* arr2)
{
	assert(arr1 && arr2);
	while (*arr1 == *arr2)
	{
		if (arr1 == '\0')

		{
			return 0;
		}
		arr1++, arr2++;
	}
	/*if (*arr1 > *arr2)
	{
		return 1;
	}
	else
	{
		return -1;
	}
	return *arr1 - *arr2;
}

限于个人水平,实现方式并没有很简洁,有许多可以改进的地方,希望能给各位带来一定的参考价值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值