-
Lesson 1 - 最简单的C程序
-
Lesson 2 - 打印输出
-
Lesson 3 - 循环打印
-
Lesson 4 - 判断奇偶
-
Lesson 5 - 从1加到100求和
-
Lesson 6 - 乘法表
-
Lesson 7 - 求100以内的最大素数
-
Lesson 8 - 1到100有多少个9
-
Lesson 9 - 整型转字符串
-
Lesson 10 - 约瑟夫环
-
Lesson 11 - 求两个坐标点之间的距离
-
Lesson 12 - 判断机器存储是否小尾端
-
Lesson 13 - 对不起,你的车今天限行
-
Lesson 14 - 判断地图上某点是否有出路
-
Lesson 15 - 统计一个数二进制表示中1的个数
-
Lesson 16 - 字符串拷贝
-
Lesson 17 - 统计单词个数
-
Lesson 18 - 实现 printf
-
Lesson 19 - 命令解释器
-
Lesson 20 - 预处理器实现
-
Lesson 21 - 词法分析器实现
-
Lesson 22 - 猜数游戏
-
Lesson 23 - 五子棋
-
Lesson 24 - 超链接分析器
-
Lesson 25 - cp命令实现
-
Lesson 26 - ELF文件头分析器实现
-
Lesson 27 - 简单流处理器实现和正则表达式
-
Lesson 28 - 数学计算器实现
-
Lesson 29 - 数学计算器实现more命令实现
-
Lesson 30 - sort命令实现
-
Lesson 31 - ls -l命令实现
-
Lesson 32 - Bash项目
-
Lesson 33 - 动态数组实现
-
Lesson 34 - 约瑟夫环问题
-
Lesson 35 - 表达式求值问题
-
Lesson 36 - 广度优先解决迷宫问题
-
Lesson 37 - 词频统计器
-
Lesson 38 - 堆排序问题
-
Lesson 39 - 构造符号表
-
Lesson 40 - MyDictionary项目
-
Lesson 41 - BSearch 实现
-
Lesson 42 - QSort 实现
-
Lesson 43 - 深度优先解决迷宫问题
-
Lesson 44 - KMP 算法实现
-
Lesson 45 - 最长公共子序列(LCS)问题
-
Lesson 46 - Dijkstra 算法
-
Lesson 47 - Huffman Coding 算法
-
Lesson 48 - 地图导航项目
Lesson 27 - sed simple (简单流处理器实现和正则表达式)
课程任务
实现 sed 命令中最简单的字符串替换功能,从标准输入 stdin 读入字符流,然后经过处理后,从标准输出 stdout 显示。
sed 命令例子参考 http://www.folkstalk.com/2012/01/sed-command-in-unix-examples.html
$ echo "unix is great os. unix is opensource. unix is free os." | sed 's/unix/linux/' linux is great os. unix is opensource. unix is free os. $ echo "unix is great os. unix is opensource. unix is free os." | sed 's/unix/linux/g' linux is great os. linux is opensource. linux is free os. $ echo "unix is great os. unix is opensource. unix is free os." | sed 's/unix/linux/3' unix is great os. unix is opensource. linux is free os.
copy
在完成上述功能的基础上,实现正则表达式中最简单的 ^ (行首)替换功能。
正则表达式学习可参考 http://learn.akae.cn/media/ch32s02.html
$ echo "unix is great os. unix is opensource. unix is free os." | sed 's/^unix/linux/' linux is great os. unix is opensource. unix is free os. $ echo "unix is great os. unix is opensource. unix is free os." | sed 's/^unix/linux/g' linux is great os. unix is opensource. unix is free os.
copy
参考资料
重要知识点
- 字符串的分割 strtok
- s/unix/linux
- 字符串的查找 strstr
- 字符串的拼接 strcat
常用 API
strlen(); 计算字符串长度
strcmp(); 比较字符串
strcpy(); 拷贝字符串
strcat(); 连接两字符串
strchr(); 查找字符串中第一个出现的指定字符
strstr(); 在一字符串中查找指定的字符串
strspn(); 返回字符串连续不含指定字符的字符数
strtok(); 分割字符串
strpbrk(); 查找字符串中第一个出现的指定字符
strrchr(); 查找字符串中最后出现的指定字符
strcspn(); 返回字符连续不含指定字符的字符数
strcoll(); 采用目前区域的字符排列比较字符串
strncmp(); 比较2个字符串的前N个字符
strncpy(); 拷贝字符串
strncat(); 连接两字符串
strerror(); 返回错误原因的描述字符串
strxfrm(); 转换字符串
copy