c语言中自己写实现strcat(),strcpy(),strcmp()的函数

c语言中的string.h头文件中虽然有这三个函数,但老师让我们自己写函数,所以添加了一点自己的想法写了这三个函数。

strcat:

#include <stdio.h>

void str_cat(char* p,char* q)
{
	while((*p) != '\0')//指针p移动到front尾
	{
		p++;
	}

	while((*q) != '\0')//将later每个字符串按个添加到front后
	{
		*p = *q;
		p++;
		q++;
	}
	*p = '\0';
	
}

int main()
{
	char front[128] = {0};//前一个字符串
	char later[64] = {0};//后一个字符串
	
	printf("输入两个字符串:\n");
	scanf("%s %s",front,later);
	
	str_cat(front,later);

	printf("结果为:\n");
	printf("%s\n",front);

	return 0;
}

strcpy:

#include <stdio.h>

void str_cpy(char* p,char* q)
{
	while((*q) != '\0')//将later的每个字符赋值给对应位置的front字符
	{
		*p = *q;
		p++;
		q++;
	}
	*p = '\0';
	
}

int main()
{
	char front[128] = {0};//前一个字符串
	char later[64] = {0};//后一个字符串

	scanf("%s %s",front,later);
	
	str_cpy(front,later);

	printf("%s\n",front);

	return 0;
}

strcmp:

#include <stdio.h>

int str_cmp(char* p,char* q)
{
	int front = 0;//记录front asc码总值
	int later = 0;//同上

	while((*p) == (*q) && (*p) != '\0' && (*q) != '\0')
	{
		p++;
		q++;
	}

	if((*p) == '\0' && (*q) == '\0')//两字符串完全相同只有一种情况
		return 0;
	else
	{
		if((*p) == '\0' && (*q) != '\0')
			return -1;
		if((*q) == '\0' && (*p) != '\0')
			return 1;

		while((*p) != '\0')
		{
			front = front + *p;
			p++;
		}

		while((*q) != '\0')
		{
			later = later + *q;
			q++;
		}

		if(front > later)
			return 1;
		if(front < later)
			return -1;
		if(front == later)//字符串不同但asc码总值相同返回-5
			return -5;
	}
}

int main()
{
	char front[128] = {0};//前一个字符串
	char later[64] = {0};//后一个字符串

	scanf("%s %s",front,later);

	printf("%d\n",str_cmp(front,later));



	return 0;
}

都是调用指针进行赋值,是对于指针的简单运用,供大家参考。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值