【Linux系统查找错误单词项目和vim的三种模式(命令,输入和底线命令模式)和项目的心得体会】

news2025/2/23 5:55:18

查找文章中拼写错误的单词的C语言程序

在这里插入图片描述
在这里插入图片描述

编写的C语言程序:

#include<stdio.h>
#include<string.h>
int main()
{
FILE *fp=fopen("essay.txt","r");
FILE *fp1=fopen("words.txt","r");
if(fp==NULL&&fp1==NULL)
{
printf("can't open essay.txt");
return 0;
}
int i=0,j=0,k,lenth;
char c;
char essay[250][20];
char word[20];
while((c=getc(fp))!=EOF){
if((c>='a'&&c<='z')||(c>='A'&&c<='Z')||(c=='\'')||(c=='-')){
if(c>='A'&&c<='Z'){
c=c+32;
}
essay[i][j]=c;
j++;
}
else{
if(essay[i][0]!='\0'){
essay[i][j]='\0';
i++;
j=0;}

}

}
k=i; 
printf("-----------------------------------------------------------\n");
printf("essay.txt中单词\n");
for(i=0;i<k;i++){
printf("%s",essay[i]);
printf("\t");
}
printf("\n---------------------------------------------------------\n\n");
printf("错误单词\n");
int flag=0;
for(i=0;i<k;i++){
while(!feof(fp1)){
fgets(word,20,fp1);
lenth=strlen(word);
word[lenth-1]='\0';
for(j=0;j<lenth;j++){
if(word[j]>='A'&&word[j]<='Z') {
word[j]+=32; 
}
}
j=0;
if(strcmp(essay[i],word)==0){
flag=1;
}
}
rewind(fp1);
if(flag==0) printf("%s\n",essay[i]);
flag=0;
}
}

在这里插入图片描述
在这里插入图片描述

基本上vi/vim共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。

(一)命令模式

x,X x为向后删除一个字符,X为先前删除一个字符
nx(n代表数字) 向后删除n个字符
dd 删除当前行
D 删除当前行所有字符,试成为空行
ndd(n代表数字) 删除光标所在行的向下n列
d1G 删除光标所在行到第一行的所有数据
dG 删除光标所在行到最后一行的所有数据
yy 复制光标所在行
y1G 复制光标所在行到第一行的所有数据
yG 复制光标所在行到最后一行的所有数据
ynj(n代表数字) 复制光标所在行向下n+1行
dnj(n代表数字) 删除光标所在行向下n+1行
p,P
p为复制的数据粘贴在光标的下一行,P为复制的数据粘贴在光标的上一行
J 将光标所在行与下一行的数据结合成一行
u 恢复前一个动作(undo)
h 光标向左移一个字符
j 光标向下移一个字符
k 光标向上移一个字符
l 光标向右移一个字符
Ctrl+f 屏幕向下翻一页
Ctrl+b 屏幕向上翻一页
Ctrl+d 屏幕向下翻半页
Ctrl+u 屏幕向上翻半页
+光标移动到下一行的第一个非空字符
-光标移动到当前行的第一个非空字符
n空格(n代表数字) 光标向当前行向右移动n个字符

0(数字0) 光标移动到当前行的第一个字符(可以为空字符,注意与-区分)
$ 光标移动到当前行的最后一个字符(可以为空字符,注意与-区分)
H 光标移动到当前屏幕最上方的那一行的第一个非空字符
M 光标移动到当前屏幕最中间那一行的第一个非空字符
L 光标移动到当前屏幕最下方的那一行的第一个非空字符
G 光标移动到该文章最后一行的第一个非空字符
nG(n代表数字) 光标移动到该文章第n行的第一个非空字符
n 光标从当前行向下移动n行的第一个非空字符

(二)输入模式

i,I
i为在当前光标所在处插入输入的文字,I为在光标所在行第一个非空字符插入输入的文字

a,A
a为在当前光标所在处下一个字符插入输入的文字,A为在光标所在行最后一个字符的下一个字符处插入输入的文字

o,O
o为在光标所在行的下一行行首开始插入字符,O为在光标所在行的上一行行首开始插入字符

r,R
r为替换光标所在那一个字符,R为一直替换光标所指的文字,直到退出

Esc
退出,回到命令模式

(三)底线命令模式

/word
在光标之后查找word字符串

?word
在光标之前查找word字符串

: s/word1/word2/g
在光标当前行查找word1,并替换成word2

:n1,n2s/word1/word2/g    
在第n1行与第n2行之间查找word1,并替换成word2

:%s/word1/word2/g   
整个文章查找word1,并替换成word2

:w
将编辑的数据保存到硬盘文件中

:w [filename]
将编辑后的数据保存到硬盘的另一个文件中

:r [filename]
在编辑数据时,读入另一个文件中的数据,即将filename文件中的内容加到光标所在行下一行

:wq或:x
保存并退出

:q
退出,适用于未修改的文件

:q!
强制退出,适用于修改文件后不保存退出

:set nu
显示行号

:set nonu
取消行号

:n1,n2 w [filename]
将n1到n2行的内容保存到名为filename的文件中

实验心得体会

这个实验就是学习Linux 文本的编辑和C语言程序的运行,首先我们需要熟悉Linux系统输入文本的模式,他分为三种命令模式,输入模式,底线命令模式,在刚刚输入文本的时候,因为自己不熟悉输入模式,在自己输入错误的时候就需要在输入i或者是a,设置光标输入在文本的前面还是后面,刚开始没有去仔细查阅输入命令的相关资料,所以当时想的就是要么实现两个系统的复制粘贴,直接从Windows系统上面复制下来,直接去Linux系统上面粘贴,要么就是不输错,一次性将这个文本全部正确的输入,所以就反反复复,其实浪费很多时间,但是我最后知道如何去正确使用着三种模式,并且也实现两个系统的文本或者文件夹的复制粘贴和共享。然后知道在Linux系统上面如何运行C语言程序,实现查找错误的单词,所以让我明白学好Linux不是一件一蹴而就的事 , 一定要能坚持使用它,特别是在学习初期。要增加自己的Linux技能,只有通过实践来实现。只要多动手,就一定会有收获。遇到问题时要自己去寻找答案,在寻找答案的过程中,会学到更多知识

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/428069.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CorelDRAW 2022矢量图形制作排版软件图文安装教程

CorelDRAW 2022是一款矢量图形制作和排版软件&#xff0c;做为目前图形设计类软件的领航者&#xff0c;CorelDRAW不断在每个新版本中完善功能&#xff0c;突破自我&#xff0c;并且广泛应用于印刷、出版、平面设计制作、包装设计&#xff0c;工业设计&#xff0c;以及服装设计裁…

学会这10款AI绘画工具,你也可以成为插画师

有些人担心人工智能绘画工具会取代插画师&#xff0c;但与其害怕&#xff0c;不如拥抱新技术&#xff01; 跟随本文了解和掌握新技术。如果你是插画师&#xff0c;以下五个人工智能绘画网站是必要的&#xff1a;「即时AI」&#xff0c;Lexica&#xff0c;DALLLeonardo和Scribb…

C++中文件操作与文件流

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C &#x1f525;座右铭&#xff1a;“不要等到什么都没有了&#xff0c;才下…

Flink SQL 在美团实时数仓中的增强与实践

01 Flink SQL 在美团 目前 Flink SQL 在美团已有 100业务方接入使用&#xff0c;SQL 作业数也已达到了 5000&#xff0c;在整个 Flink 作业中占比 35%&#xff0c;同比增速达到了 115%。 SQL 作业的快速增长给我们带来了许多新的问题和挑战&#xff0c;主要包括以下几点&#…

CTR-GCN 论文解读

论文名称&#xff1a;Channel-wise Topology Refinement Graph Convolution for Skeleton-Based Action Recognition论文下载&#xff1a;https://arxiv.org/pdf/2107.12213.pdf论文代码&#xff1a;https://github.com/Uason-Chen/CTR-GCN CTR-GCN 是中科院自动化所发表在 IC…

项目二,easyx的加入

今天是项目的第二天 与昨天的迷离比起来今天大大的有进步 我对实现啥的功能有了一个基本的方案 1对所有路的查询那就是用dfs 2对最短路的查询就是用的floyed但是,查询是要保存路径的,所以想到了,保存每条最短路的时候 同时把最短路的前驱保存下来,我们可以通过前驱把完整的…

InnoDB中索引的实现

B树索引的使用 5.6.1 不同应用中B树索引的使用 在OLTP应用中&#xff0c;查询操作只从数据库中取得一小部分数据&#xff0c;一般可能都在10条记录以下&#xff0c;甚至在很多时候只取1条记录&#xff0c;如根据主键值来取得用户信息&#xff0c;根据订单号取得订单的详细信息…

Linux下最小化安装CentOS-7.6(保姆级)

文章目录安装包开始安装一、 新建一个虚拟机二、配置安装CentOS7.6二、开始安装CentOS三、配置CentOS并下载基本信息安装包 链接&#xff1a;https://pan.baidu.com/s/1DodB-kDy1yiNQ7B5IxwYyg 提取码&#xff1a;p19i 开始安装 一、 新建一个虚拟机 1、 打开VMWare&#x…

UVCCamera 源码解析

本文将通过UVCCamera源码研究 概述相机传感器数据采集至USB数据传输整个过程 下载源码配置调试环境 git clone GitHub - saki4510t/UVCCamera: library and sample to access to UVC web camera on non-rooted Android device 注释调原有 ndk-build编译方式 //tasks.with…

使用 /permissive- 编译器开关时变量名or被识别为关键字

使用 /permissive- 编译器开关时变量名被识别为关键字 VS2022已经默认开启对c14的支持。并且&#xff0c;一般同时开启的还有/permissive-开关。项目属性如下所示&#xff1a; 然而&#xff0c;在许多早期代码中&#xff0c;函数名和变量名使用了c14等新标准中的关键字&#…

德国访问学者申请签证事宜

德国访问学者长期签证所需材料,下面就随知识人网小编一起看一看。 1、护照及复印件两份。 2、申请表附加表两份(里面有好多注意事项&#xff0c;最重要的是用德文填写&#xff0c;当时我就谷歌翻译后写上去的&#xff0c;最后附加表上的地点&#xff0c;有好多人问填办大使馆还…

谷歌seo快速排名优化方法,谷歌seo需要哪些技术手段?

谷歌seo快速排名优化方法怎么做&#xff1f; 答案是&#xff1a;利用GLB推广技术可以实现谷歌快速排名。 具体请阅读&#xff1a;什么叫GLB外推&#xff1f; 你只想快速曝光你的企业品牌&#xff0c;GLB外推技术是一个不错的选择。 但如果你想优化自己的外贸官网&#xff0…

【springcloud】服务熔断——Hystrix

官方资料&#xff1a;Home Netflix/Hystrix Wiki GitHub 服务雪崩 多个微服务之间调用的时候&#xff0c;假设微服务A调用微服务B和微服务C&#xff0c;微服务B和微服务C又调用其他的微服务&#xff0c;这就是所谓的“扇出”&#xff0c;如果扇出的链路上某个微服务的调用响…

配置python的opencv环境

1、核心 opencv与numpy包的版本必须适配。核心包版本&#xff1a; numpy1.15.0 opencv4.1.0 2、创建opencv环境 (1)创建一个opencv的虚拟环境 conda create -n cv_python python3.6.0(2)激活虚拟环境 activate cv_python (3)安装numpy的1.15.0版本 pip install numpy1.1…

windows自定时间显示格式(将星期几调出来)

一般的情况下是不是显示星期几的 添加红色方框中的内容

ctfshow 愚人杯菜狗杯部分题目(flasksession伪造ssti)

目录 <1>愚人杯 (1) easy_signin (2) easy_ssti(无过滤ssti) (3) easy_flask(flash-session伪造) (4) easy_php(C:开头序列化数据) <2> 菜狗杯 (1) 抽老婆(flask_session伪造) (2) 一言既出&#xff0c;驷马难追(intval) (3) 传说之下&#xff08;js控制台&…

0101quick_find_union-union_find-动态连通性-算法研究

文章目录1 前言2 动态连通性3 算法3.1 算法设计3.1 union-find算法API3.2 数据结构和通用实现3.3 quick-find算法3.3.1 思想和实现3.3.2 分析3.4 quick-union算法3.4.1 算法描述3.4.2 算法实现3.4.3 性能分析结语1 前言 为了说明我们设计和分析算法的基本方法&#xff0c;我们…

通过SSD对齐功能轻松将 HDD 克隆到 SSD

由于 SSD 的优越性能&#xff0c;越来越多的用户正在考虑将他们的操作系统从 HDD 转移到 SSD。然而&#xff0c;一些用户反馈&#xff0c;在迁移之后&#xff0c;SSD 的启动速度并未提升。 为什么将操作系统从 HDD &#xff08;机械硬盘&#xff09;迁移到 SSD&#xff08;固态…

【leetcode hot 100】【7】11. 盛最多水的容器

题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容器。 示…

JUC-多线程(11.面试问题简析)学习笔记

文章目录1. synchronized 关键字底层原理以及其与 lock 的区别2. 对CAS的理解以及底层实现原理3. ConcurrentHashMap实现线程安全的底层原理是什么4.对JDK中的AQS了解吗&#xff1f;AQS的实现原理是什么&#xff1f;5. 线程池的核心配置参数是干什么的&#xff1f;应该怎么用&a…