数据结构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> 调用函数释放空间

t

#include "head.h"

int main(int argc, const char *argv[])
{
	char *p=create();
	char *q=create();

		
	input(p);
	
	input(q);

	printf("p:%d\n",my_strlen(p));
	printf("p:%d\n",my_strlen(q));

	my_stract(p,q);
	printf("p:%s\n",p);

	Bubble(p);
	printf("p:%s\n",p);

	nizhuan(p);
		printf("p:%s\n",p);

	p=free_space(p);
	q=free_space(q);
	return 0;
}

 主函数

#include "head.h"

int main(int argc, const char *argv[])
{
	char *p=create();
	char *q=create();

		
	input(p);
	
	input(q);

	printf("p:%d\n",my_strlen(p));
	printf("p:%d\n",my_strlen(q));

	my_stract(p,q);
	printf("p:%s\n",p);

	Bubble(p);
	printf("p:%s\n",p);

	nizhuan(p);
		printf("p:%s\n",p);

	p=free_space(p);
	q=free_space(q);
	return 0;
}

自定义函数

#include "head.h"
 
//在堆区申请空间
char *create()
{
	char *p=(char *)malloc(20);
	if (p==NULL)
		return NULL;
	return p;
}


 
//输入字符串
void input(char *p)

{
	printf("请输入一个字符串");
	scanf("%s",p);
}
 	
//计算字符串长度
sizeof_t my_strlen(const char *s1)
{
	int i=0;
	while(*(s1+i)!='\0')
		i++;
	return i;
}
 
//字符串连接
char * my_stract( char *dest,const char *scr)
{
	int i=my_strlen(dest);
	for(i;*scr!='\0';scr++,i++)
		*(dest+i)=*scr;
	*(dest+i)='\0';
	return dest;
}
 
//字符串的冒泡排序
void Bubble(char *s)
{
	int i=0,j=0;
	for(i=1;i<my_strlen(s);i++)
		for(j=0;j<my_strlen(s)-i;j++)
			if(*(s+j)>*(s+j+1))
			{
				*(s+j)^=*(s+j+1);
				*(s+j+1)^=*(s+j);
				*(s+j)^=*(s+j+1);
			}
}
 
//字符串逆转
void nizhuan(char *p)
{
	int i=0,j=my_strlen(p)-1;
	for(i=0;i<j;i++,j--)
	{
		*(p+i)^=*(p+j);
		*(p+j)^=*(p+i);
		*(p+i)^=*(p+j);
	}
}
 
//释放空间
char *free_space(char *p)
{
	if (p==NULL)
		return NULL;
	free(p);
	p=NULL;
	return p;
}
ubuntu@ubuntu:327.c$ gcc *.c
ubuntu@ubuntu:327.c$ ./a.out
请输入一个字符串3253534
请输入一个字符串sdrgdfg
p:7
p:7
p:3253534sdrgdfg
p:2333455ddfggrs
p:srggfdd5543332

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值