hqyj-数据结构day1

主函数:

#include"head.h"

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

	input(p);
	input(q);
	int len1 = my_strlen(p);
	int len2 = my_strlen(q);
	my_strcat(p,q);
	Bubble(p);
	rev(p);
	puts(p);
	p = free_space(p);
	q = free_space(q);
	
	return 0;
}

头文件:

#ifndef N
#define N
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

#endif
char *create(int n);
void input(char *p);
size_t my_strlen(const char *p);
void my_strcat(char *p,const char *q);
void Bubble(char *p);
void rev(char *p);
char *free_space(char *p);

自定义:

#include"head.h"
/*
 * function:    申请一定长度的字符空间
 * @param [ in] 长度n
 * @param [out] 堆区存储空间的地址
 * @return      有返回值返回指针
 */
char *create(int n)
{
	char *p = (char *)malloc(sizeof(char)*n);
	if(p == NULL)
		return NULL;
	return p;
}
/*
 * function:    输入字符串函数
 * @param [ in] 地址
 * @param [out] 无
 * @return      无参数函数
 */
void input(char *p)
{
	printf("请输入一串字符串:");
	scanf("%s",p);
}
/*
 * function:    输出字符串长度函数
 * @param [ in] 字符指针
 * @param [out] 无符号整形常量
 * @return      
 */
size_t my_strlen(const char *p)
{
	size_t len = 0;
	while(*p)
	{	len++;
		p++;
	}
	return len;
}
/*
 * function:   字符串连接函数 
 * @param [ in] 两个字符串指针
 * @param [out] 无
 * @return      无返回值函数
 */
void my_strcat(char *p,const char *q)
{
	strcpy(p + my_strlen(p), q);
}
/*
 * function:   冒泡排序函数 
 * @param [ in] 字符地址
 * @param [out] 
 * @return      无返回值
 */

void Bubble(char *p)
{
	int i ,j ;
	size_t len = my_strlen(p);
	char temp;
	for(i = 1;i < len ;i++)
	{
		for(j = 0; j <len - i ; j++)
		{
			if(*(p + j)>*(p+j+1))
			{
				temp = *(p+j);*(p+j) = *(p+j+1);*(p+j+1) = temp ;
			}
		}
	}
}

/*
 * function:    逆置函数
 * @param [ in] 字符地址
 * @param [out] 
 * @return      无返回值
 */
void rev(char *p)
{
	size_t len = my_strlen(p);
	int i = 0;
	char temp;
	char *q = p + len - 1;
	for(i = 0; i < len/2 ; i++)
	{
		temp = *p;*p = *q;*q = temp;
		p++;  q--;
	}
}
/*
 * function:    释放空间
 * @param [ in] 字符指针 
 * @param [out] 空地址
 * @return      返回空地址
 */

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

运行:

请输入一串字符串:1234    
请输入一串字符串:qwer
wrqe4321

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值