使用c语言将字符串中的字符反向排列-创新互联

目录

站在用户的角度思考问题,与客户深入沟通,找到应城网站设计与应城网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计制作、成都网站建设、企业官网、英文网站、手机端网站、网站推广、域名注册雅安服务器托管、企业邮箱。业务覆盖应城地区。

学习目标:

学习内容:

  条件:

  代码内容:

函数解法:

递归解法:

学习时间:

学习产出:

学习引用:


学习目标:

  了解递归和函数,以及指针的应用,并完成条件


学习内容:

  函数,递归,指针,以代码形式讲解

  条件:

1.将字符串中的字符反向排列,不是一一打印

2.不能使用库函数

3.使用两种方法       

  代码内容: 函数解法:
#define _CRT_SECURE_NO_WARNINGS 1
//条件:将字符串中的字符反向排列,不是一一打印,不能使用库函数

#includeint j_s(char* x)//自定义strlen
{
	int c = 0;
	while (*x++ != '\0')//字符串后自带\0
	{
		c++;
	}
	return c;
}

void f_x(char* ch)//取字符串地址
{
	int j = j_s(ch);//计算字符串长度
	int l = 0;//左边
	int r = j-1;//右边
	char f[20] = { 0 };//空数组
	while (l< r)
	{
		*f = ch[l];
		ch[l] = ch[r];
		ch[r] = *f;
		l++;
		r--;//下标计算交换
	}
	printf("%s\n", ch);//输出结果
}

int main(void)
{
	char ch[20] = { 0 };
	scanf("%s", ch);//输入

	f_x(ch);

	return 0;
}

递归解法:
#define _CRT_SECURE_NO_WARNINGS 1
//条件:将字符串中的字符反向排列,不是一一打印,不能使用库函数

#includeint j_s(char* x)//自定义strlen
{
	if (*x != '\0')
	{
		return 1 + j_s(x + 1);//个数
	}
	else
	{
		return 0;
	}
}

void f_x(char* ch)//取字符串地址
{
	int j = j_s(ch);//计算字符串长度
	char f[20] = { 0 };//空数组
	*f = *ch;//赋值空地址
	*ch = ch[j - 1];//最后一位放第一
	ch[j - 1] = '\0';//字符串最后赋值
	if (j_s(ch + 1) >= 2)//地址加一位
	{
		f_x(ch + 1);//输出下一位
	}
	ch[j - 1] = *f;
}

int main(void)
{
	char ch[20] = { 0 };
	scanf("%s", ch);//输入

	f_x(ch);

	printf("%s\n", ch);
	return 0;
}

注意指针地址应用,递归的方法比函数的难理解一点


学习时间:

  大概1个小时左右

  注意思路和画图步骤


学习产出:

  了解递归和函数,以及指针的应用

  代码熟练学习

  在线云笔记重点修改


学习引用:

  根据以往学习内容,灵活应用改变

使用自写(strlen)函数实现计算字符串长度

函数的嵌套调用和链式访问

给出一个数,要求将他翻转

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前文章:使用c语言将字符串中的字符反向排列-创新互联
网站路径:http://azwzsj.com/article/dpjjig.html