搜索(第六节)
让我们使用editorPrompt()
来实现一个简单的搜索功能。当用户输入一个搜索查询并按下回车键时,我们将遍历文件的所有行。如果某一行包含用户输入的查询字符串,我们就将光标移动到匹配的位置。
kilo.c
步骤131
基本搜索
/*** 包含的头文件 ***/
/*** 宏定义 ***/
/*** 数据 ***/
/*** 函数原型声明 ***/
/*** 终端相关操作 ***/
/*** 行操作 ***/
/*** 编辑器操作 ***/
/*** 文件输入输出 ***/
char *editorRowsToString(int *buflen) { … }
void editorOpen(char *filename) { … }
void editorSave() { … }
/*** 查找 ***/
void editorFind() {
char *query = editorPrompt("搜索: %s (按ESC取消)");
if (query == NULL) return;
int i;
for (i = 0; i < E.numrows; i++) {
erow *row = &E.row[i];
char *match = strstr(row->render, query);
if (match) {
E.cy = i;
E.cx = match - row->render;
E.rowoff = E.numrows;
break;
}
}
free(query);
}
/*** 追加缓冲区 ***/
/*** 输出 ***/
/*** 输入 ***/
/*** 初始化 ***/
编译通过,但没有可观察到的效果
strstr()
函数来自<string.h>
头文件。

扫描二维码关注微信公众号,回复密码,即可获取密码
阅读剩余
版权声明:
作者:讳疾忌医-note
链接:https://www.1217zy.vip/archives/114
文章版权归作者所有,未经允许请勿转载。
THE END