day1 数据结构作业

    作业:多文件编译  

1.在堆区申请2个字符类型的大小为20字节的空间。

1>定义函数,实现在堆区申请空间

2>定义函数,输入两个字符串

3>定义函数,计算两个字符串的长度[非函数]

sizeof_ t my_ strlen(const char *s1)              //注意: sizeof_ _t是unsigned int的别名 

4>定义函数,实现字符串连接

char *my_ strcat(const char *dest,const char *src)

5>定义函数,实现连接后字符串的冒泡排序[ 是对字符串的每一个字符进行排序]

void Bubble(char *s)

6>实现字符串逆置

7>调用函数释放空间

1、head.h


#ifndef N
#define N
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *creat();
char input(char *p);
int my_strlen(const char *s1);
char *my_strcat(char *dest,const char *src);
void Bubble(char *s);
void inverse(char *p);
char *my_free(char *p);


#endif

2、main.c


#include"head.h"

int main(int argc, const char *argv[])
{
	char *p=creat();
	char *q=creat();
	printf("请输入一个字符串:");
	input(p);
	printf("请输入另一个字符串:");
	input(q);
	int len1=my_strlen(p);
	int len2=my_strlen(q);
	char *r=my_strcat(p,q);
	printf("%s\n",r);
	Bubble(r);
	printf("%s\n",r);
	inverse(r);
	printf("%s\n",r);
	r=my_free(r);
	q=my_free(q);
	
	return 0;
}

3、text.c

#include"head.h"
char *creat()
{
		char *p=(char *)malloc(sizeof(char)*20);
		if(p==NULL)
		return NULL;
		return p;

}
char input(char *p)
{
	gets(p);	
}
int my_strlen(const char *s1)
{
	int count=0;
	while(*s1!='\0')
	{
		s1++;
		count++;
	}
	
	return count;
}
char *my_strcat( char *dest,const char *src)
{
	int len1=my_strlen(dest);
	int len2=my_strlen(src);
	for(int i=0;i<len2;i++)
	{
		dest[i+len1]=src[i];
	}

	return dest;
}
void Bubble(char *s)
{
	int len=my_strlen(s);
	char temp;
	for(int i=1;i<len;i++)
	{
		for(int j=0;j<len-i;j++)
		{
			if(s[j]>s[j+1])
			{
				temp=s[j];s[j]=s[j+1];s[j+1]=temp;
			}
		}
	}
}
void inverse(char *p)
{
	int len=my_strlen(p);
	char temp;
	for(int i=0;i<len/2;i++)
	{
		temp=p[i];p[i]=p[len-1-i];p[len-1-i]=temp;
	}

}
char *my_free(char *p)
{
	if(p==NULL)
	{
		return NULL;
	}
	free(p);
	p=NULL;
	return p;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值