一些字符串处理函数的实现!

最近刚学完数组,把一些学了的字符串处理函数进行自己理解,写出了他们的一些转化程序。有出错的地方请大家指出,相互学习!

1、strcat字符串追加

size_t  strcat(char * _Str1, const char * _Str2);

将参数_Str2追加到_Str1后尾


strcat字符串追加的实现

#include <stdio.h>
#include <string.h>

//strcat字符串追加的实现
int main()
{
	char str1[100] = "hello ";
	char str2[] = "world";
	
	int len = strlen(str1);
	char *p1 = str1;
	char *p2 = str2;
	p1 = p1 + len;
	
	while (*p2)
	{
		*(p1++) = *(p2++);
	}
	*p1 = '\0';
	
	puts(str1);
	return 0;
}


2、strncat字符串有限追加

size_t strncat(char * _Str1, const char * _Str2, size_t len);

strncat字符串有限追加的实现:

#include <stdio.h>
#include <string.h>

int main()
{
	char str1[100] = "hello ";
	char str2[] = "world";
	
	int len = strlen(str1);
	char *p1 = str1;
	char *p2 = str2;
	p1 = p1 + len;
	int n;
	scanf ("%d", &n);
	
	while (n)
	{
		*(p1++) = *(p2++);
		n--;
	}
	*p1 = '\0';
	puts(str1);
	return 0;
}


3、strcmp字符串比较

int strcmp(const char * _Str1,const char * _Str2);

比较两个字符串是否相等,相等返回0,不等返回非0


strcmp字符串比较的实现:


int main()
{
	char str1[] = "workasjdksahdksahd";
	char str2[] = "world";
	char *p1 = str1;
	char *p2 = str2;
	
	while (*p1)
	{
		if(*p1 == *p2)
		{
			p1 = p1++;
			p2 = p2++;
		continue;
		}
		else
		{
			printf ("str1 != str2\n");
			break;
		}
		printf ("str1 == str2\n");
	}


	return 0;
}

4、strncmp字符串有限比较的实现:

int main()
{
	char str1[] = "workasjdksahdksahd";
	char str2[] = "world";
	char *p1 = str1;
	char *p2 = str2;
	int n;
	scanf ("%d", &n);
	
	while (n)
	{
		if(*p1 == *p2)
		{
			p1 = p1++;
			p2 = p2++;
			n--;
			if(n == 0)
			{
				printf ("str1 == str2\n");
			}
			continue;
		}
		else
		{
			printf ("str1 != str2\n");
			break;
		}
		
	}
	
	return 0;
}

5、strcop 字符串的拷贝的实现:

int main()
{
	char str1[100] = "hello";
	char str2[] = "worldkgffijhgkjhgkjh";
	
	// 拷贝实现
	char *p1 = str1;
	char *p2 = str2;
	
	while (*p2)
	{
		*(p1++) = *(p2++);
	}
	*p1 = '\0';
	
	puts(str1);
	
	return 0;
}


6、strcop 字符串的有限拷贝的实现:

int main()
{
	char str1[100] = "hello";
	char str2[] = "worldkgffijhgkjhgkjh";
	
	// 拷贝实现
	char *p1 = str1;
	char *p2 = str2;
	int n;
	scanf("%d", &n);
	while (n)
	{
		*(p1++) = *(p2++);
		n--;
	}

	
	puts(str1);
	return 0;
}







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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值