当前课程知识点:C语言程序设计 >  第22讲 编程训练 >  编程训练 >  字符串(下)

返回《C语言程序设计》慕课在线视频课程列表

字符串(下)在线视频

返回《C语言程序设计》慕课在线视频列表

字符串(下)课程教案、知识点、字幕

虽然C语言提供了比较丰富的字符串处理函数

但我们仍然有必要自己写函数实现字符串的某些功能

一方面是因为系统提供的函数未必全面、合适

另外

这也是一种编程训练

我们先看一下如何自己写函数实现字符串的复制

那么这是自己写的一个字符串复制函数

这是目标字符串

这是源字符串

然后我们看一下这个工作过程

这儿它是判断如果源字符串不等于0

就是没到结尾

然后把源复制给目标

然后这个i就是这个下标每次增加1

然后到什么时候结束

就是到为0的地方结束

结束了以后

这个地方切记目标字符串这儿你还得给它补一个0

下面看一下这个具体例子当中的演示

这是源字符串

这是目标字符串

i等于0的时候那么因为这个H是不等于0的

所以就这儿复制

复制完了以后

到这儿以后i++

就i等于1

这个还不等于0 再往后复制

一直持续这个过程

那么一直持续这个过程到碰到0以后

这个地方while循环退出

然后这儿在下面补一个0

我们看一下完整的程序

这个完整的程序这儿也就是刚才讲过的

然后这是main函数

main函数当中我们先定义了两个字符数组

然后通过gets输入这个源字符串

然后调用我自己的拷贝函数

然后把str1复制给str2

然后输出str2

看一下这个结果到底对不对

这是一种写法

其实还有一种更简洁的写法

这个地方也给大家介绍一下

我们看这个写法是这样的

就是整个的复制过程

这个地方只使用了一行语句就完成了

我们认真的看一下这个while语句里面它具体是怎么工作的

这个过程是这样的

它先把源字符串的一个字符复制给目标

复制完了以后

这个指针向后移向下一个字符

这个指针也向后移

完了以后再继续复制

那么这个while条件什么时候结束呢

就是到0的时候结束

那它什么时候是0

就是源字符串到了它的结尾的时候它一定是有一个0的

当它把那个0赋值给目标以后

同时这个条件也为假了

然后这个while循环也退出

这是一个c语言当中相当典型有趣的一个例子

大家看

while循环当中

后面没有什么东西直接带一个分号

而且这个里面++

++写到这个里面

可能对初学者来说第一眼不太能明白这是什么意思

实际上这个操作它包含了三部内容

这个也特别能体现c语言的这种简洁性

虽然有些时候可能不太提倡这么写代码

但是因为字符串复制这个功能特别适合这样去写

因为这样能体现c语言的功能

以及它的那个强大的地方

所以我们这儿也给大家展示一下

你下去可以认真的体会一下这种方式

我们下面看看自己写函数实现比较字符串大小的功能

这是这样实现的

就是在这个while循环当中先看一看str1

如果它的这个值不为0并且str1的值等于str2

就是两个字符相同

然后这个下标往后挪

挪向下一个字符

这样往下

那么到什么时候会结束呢

就是到两个字符串当中的字符不一样的时候

这个时候就会结束或者还有一种情况

就是两个字符串都到了0也会结束

就是要么出现不同

要么两个字符串同时到0

这样这个循环结束

循环结束了以后

就把两个字符的值一减

减的情况下如果是满足第一个条件的退出

就是两个都到0了

那么这个地方减完以后结果是0

如果是这种情况循环退出的

那么减完以后就是一个0值

那当然如果前面这个值比后面这个值大

返回就是正的

如果前面这个值比后面的小

返回的就是负数

所以你可以通过返回的是正数、负数还是0

你知道到底哪个字符串大一些

这是main函数

就不过多介绍了

C语言程序设计课程列表:

第0讲 导言

-简单介绍课程性质等

-关于编程训练

第1讲 C程序框架

-C程序框架

-作业

第2讲 C程序编译环境

-C语言的编译环境

-作业

第3讲 顺序程序的几个例子

-顺序程序的几个例子

-作业

第4讲 常见的编译错误

-常见的编译错误

-作业

-编译错误探讨

第5讲 输入输出精要

-输入输出精要

-作业

-输入输出格式探讨

第6讲 选择结构的典型例子

-选择结构的典型例子

-作业

第7讲 选择结构常见错误

-选择结构常见错误

-作业

第8讲 排除程序错误的常规方法

-排除程序错误的常规方法

-排除错误探讨

第9讲 循环结构基础

-循环结构基础

-作业

-循环类型

第10讲 循环结构程序例子

-循环结构程序例子

-作业

-程序结构

第11讲 函数基础

-函数基础

-作业

第12讲 函数举例

-函数举例(上)

-函数举例(下)

第13讲 变量的作用域与生存期

-变量的作用域与生存期

-变量的使用

第14讲 数组基础

-数组基础

-作业

第15讲 数组应用举例

-数组应用举例(上)

-数组应用举例(下)

第16讲 数组参数传递

-数组参数传递(上)

-数组参数传递(下)

-作业

第17讲 指针变量

-指针变量(上)

-指针变量(下)

-作业

第18讲 字符串

-字符串(上)

-字符串(下)

-作业

第19讲 程序调试

-程序调试

-程序调试的重要性

-程序调试讨论

第20讲 结构体及其应用

-结构体及其应用(上)

-结构体及其应用(下)

第21讲 文件

- 文件(上)

-文件(下)

第22讲 编程训练

- 编程训练

字符串(下)笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。