[传智播客]C++基础视频(深入浅出版)C语言提高-案例字符串反转

了解

理解递归2个重要点
1、参数的入栈模型;
2、函数的嵌套调用返回流程。

memset()函数:
用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’;

strcat()函数:
char *strcat(char *dest,char *src);把src所指字符串添加到dest结尾处(覆盖dest结尾处的’\0’)。

strncpy()函数:
char *strncpy(char *dest, const char *src, size_t n) ;把 src 所指向的字符串复制到 dest,最多复制 n 个字符。当 src 的长度小于 n 时,dest 的剩余部分将用空字节填充。

strncat()函数
char *strncat(char *dest, const char *src, size_t n) 追加src指向字符串结尾的字符串到dest指向最多n个字符长。

方法1:指针
#include<stdio.h>
#include<string.h>  //strlen的头文件

int inverse(char *strl)
{
	if(strl == NULL)
	{
		return -1;
	}
	
	int length = strlen(strl);

	char *p1;  //注意该指针的类型
	char *p2;
	
	p1 = strl;
	p2 = strl + length - 1;

	while(p1 < p2)
	{
		char buf = *p1;
		*p1 = *p2;
		*p2 = buf;

		++p1;
		--p2;
	}
	return 0;
}

void main()
{
	char data[] = "abcdefg";

	inverse(data);

	printf("%s\n",data);
}
方法2:递归

1、在函数中直接输出

int inverse02(char *strl)
{

	if(strl == NULL)//递归结束的异常条件
	{
		return -1;
	}
	if(*strl == '\0')//递归结束的条件
	{
		return -1;
	}
	
	inverse02(strl+1);
	printf("%c",*strl);
}

2、把逆序的结果存入全局变量

char g_buf[1000];
int inverse03(char *strl)
{

	if(strl == NULL)//递归结束的异常条件
	{
		return -1;
	}
	if(*strl == '\0')//递归结束的条件
	{
		return -1;
	}
	
	inverse03(strl+1);
	strncat(g_buf,strl,1);
}

3、递归指针函数参数

int inverse04(char *strl,char *buf)
{

	if(strl == NULL)//递归结束的异常条件
	{
		return -1;
	}
	if(*strl == '\0')//递归结束的条件
	{
		return -1;
	}
	
	inverse04(strl+1,buf);
	strncat(buf,strl,1);
}
void main()
{
	char data[] = "abcdefg";

	char mydata[100] = {0};

	inverse04(data,mydata);

	printf("mydata:%s\n",mydata);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 传智播客是国内知名的IT培训机构,出品了一系列与编程相关的课程讲义。其中包括2018年的C语言基础C语言提高C++基础、Linux操作系统、C++提高以及数据结构等等。 C语言是一种被广泛应用的编程语言,是许多编程工作的基础C语言基础课程通过系统性地介绍C语言的基本语法和程序设计思想,培养学员的编程能力和思维模式。C语言提高课程进一步深化了对C语言的理解,教授高级语法和更复杂的编程技巧,帮助学员提升编程水平。 C++C语言的扩展,具有更强大的功能和更丰富的特性。C++基础课程向学员介绍了C++的基本语法和对象导向编程思想,培养学员进行面向对象的编程能力。C++提高课程进一步探讨了C++的高级特性和编程技巧,让学员可以在实际开发中灵活运用C++语言进行程序设计。 Linux是一种开源的操作系统,广泛应用于服务器和嵌入式设备等领域。Linux操作系统课程向学员介绍了Linux操作系统的基本结构和常用命令,培养学员熟练使用Linux系统进行开发和管理的能力。 数据结构是计算机科学与技术领域的重要基础课程,研究数据组织和算法的设计与分析。数据结构课程介绍了常用的数据结构,如线性表、树、图等,以及与之相关的算法和操作,培养学员解决实际问题的能力。 通过学习传智播客的这些课程讲义,学员可以系统地学习和掌握C语言C++语言、Linux操作系统和数据结构等重要的编程知识和技能。这些讲义提供了详细的理论知识、示例代码和练习题,帮助学员深入理解和实践所学内容。同时,传智播客还通过丰富的教学资源和实践项目,帮助学员巩固所学知识并提升实际编程能力。 ### 回答2: 传智播客2018年C语言教程全套讲义,涵盖了C语言基础C语言提高、Linux编程、C语言提高、数据结构等内容。这套讲义是为了帮助学习者全面掌握C语言编程及相关知识而编写的。 首先,C语言基础部分主要介绍了C语言的基本语法、数据类型、运算符、控制语句等基础知识。通过学习这部分内容,学习者能够了解C语言的基本特性,能够编写简单的C程序。 其次,C语言提高部分进一步深入讲解了C语言的高级特性,包括函数指针、结构体、文件操作、内存动态分配等内容。这些知识点的学习将使学习者能够编写更加复杂和高效的C程序。 Linux编程部分介绍了在Linux环境下进行C语言编程的相关知识。学习者将了解Linux的基本命令、文件系统、进程管理等内容,掌握在Linux系统上进行C语言程序开发的技巧。 C语言提高部分进一步拓展了C语言的应用领域,包括多线程编程、网络编程等内容。通过学习这部分内容,学习者将能够开发出更加复杂和高性能的C语言程序。 最后,数据结构部分介绍了常用的数据结构和算法,包括链表、栈、队列、树、图等内容。学习者将了解这些数据结构的原理及其在实际编程中的应用,能够选择和实现合适的数据结构来解决实际问题。 综上所述,传智播客2018年C语言教程全套讲义是一套非常全面而且实用的教材,对于想要学习和掌握C语言编程及相关知识的人来说是一本很好的学习材料。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值