`
westice
  • 浏览: 115632 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

查找字符串简单实现

阅读更多

  一直对编辑器里字符串查找功能感觉很神奇,今天脑子转了一转,用自己的想法简单实现了。

我受数字电路课里画状态图的习题的启发,比如一个字符串“hello”,设置一个状态变量state为0,没有查找到h时state为0,查到h时变为1,查到e时变为2.....其中有任何不匹配的state变为0,当state为"hello"长度5时,则查到了这个数

 

下面贴C代码:

#include <stdio.h>
#include <string.h>
#include <iostream>

int main(){
   
   char word[] = "hello";   //所需查找的字符串
   short wordlen = strlen(word);
   short state = 0;           //匹配状态
   //以第0行和第0列为起始点 
   int row = 0; 
   int col = 0;
   int word_row = 0;  //目标字符所在位置
   int word_col = 0;        //
   
   FILE *pt_file = fopen("D:\\testfile.txt","r"); 
   char temp_c;
   while( !feof(pt_file) ){
        temp_c = fgetc(pt_file);//读取一个字符
        
        if( 0 == state ){
           //这里有可能是所要单词的起始位置 
           word_row = row;
           word_col = col;    
        }
        
        //匹配字符 
        if( word[state] == temp_c ){
             state++;
             //printf("i find:%c\n",temp_c);
        }else{
             state = 0;      
        }
            
        //行列计数,如遇换行符则新的一行开始 
        col++;
        if( temp_c == '\n'){
            row++;    
            col = 0;
        }    
        
        //状态变量到顶,即查到了所要的字符串       
        if( state == wordlen){
           printf("I find it in row:%d  col:%d\n",word_row,word_col);    
        }                 
   } 
   system("PAUSE");
   return 0;   
}

 

//当然实际中不能这个简单,磁盘读取是很慢的,应该要开辟一块缓存,一边从磁盘读取一边查找,不过这就要很多代码了

 

分享到:
评论

相关推荐

    MFC 查找文件中指定字符串

    - 字符串查找算法:可以使用C++标准库中的std::string类提供的find成员函数来查找字符串。每次找到目标字符串时,记录下位置(行号)和次数。 4. **用户界面** - MFC对话框:程序可能使用CDialog派生类创建一个...

    matlab开发-查找字符串文本文件

    在MATLAB中,进行文本文件的处理是一项常见的任务...总的来说,MATLAB提供了丰富的文本处理工具,使得在文本文件中查找字符串变得简单易行。通过熟练掌握这些函数,你可以高效地处理各种文本数据,满足不同的开发需求。

    从文本文件中查找字符串

    本主题聚焦于“从文本文件中查找字符串”,这是一个常见的需求,例如在源代码中寻找特定函数或变量,或者在日志文件中查找关键信息。这个过程可以帮助开发者定位问题,理解代码逻辑,或者对数据进行分析。 首先,...

    查找字符串出现否,及出现次数

    根据给定文件的信息,本文将围绕“查找字符串出现否,及出现次数”的主题进行深入探讨。此主题涉及到了计算机编程中的字符串处理技术,主要聚焦于如何在一段文本中找到特定子串的所有出现位置及其出现次数。 ### ...

    c 查找字符串

    在IT领域,尤其是在编程中,查找字符串和模式匹配是至关重要的技术。在Linux环境中,C语言经常被用来实现这些功能,因为它的效率高且灵活性强。本文将详细讲解"Linux C查找字符串"的相关知识点,包括基本概念、KMP...

    查找字符串中最小字符串-C语言代码

    在C语言中,查找字符串中最小字符串的问题是一个基础但有趣的编程练习。这个问题通常涉及比较字符串长度,找到字符串数组中长度最短的那一个。这里,我们将会深入探讨如何使用C语言来解决这个问题,并通过实际代码...

    汇编语言实验字符串位置的查找

    此程序通过汇编语言实现了简单的字符串处理功能,包括字符串的输入、单个字符的查找以及结果的输出。通过对这段代码的理解,可以帮助我们更好地掌握汇编语言的基础语法和控制结构,尤其是如何利用寄存器和内存来实现...

    python查找字符串

    在处理自然语言任务,比如CONLL评测时,查找字符串的能力尤为关键。CONLL(CoNLL,Conference on Natural Language Learning)是自然语言处理领域的一个知名评测比赛,涉及诸如句法分析、命名实体识别等任务,而这些...

    从字符串中查找字符出现次数的方法和性能对比

    在IT领域,尤其是在编程与数据处理中,统计字符串中特定字符的出现次数是一个常见的需求。本文将深入探讨几种实现这一功能的方法,并通过实际代码示例和性能对比分析,帮助读者理解每种方法的优劣,以便在实际开发中...

    基于Keil实现字符串函数string.h的简单应用

    基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用...

    T395934927.zip VB6 Listbox 查找字符串

    在VB6中,没有内置的方法直接用于在Listbox中查找字符串。但是,你可以通过编写自定义代码来实现这个功能。以下是一个简单的示例: ```vb Function IsStringInListBox(lst As ListBox, str As String) As Boolean...

    字符串的查找替换 汇编实现

    1. 简单线性查找:从字符串起始位置开始,逐个比较字符,直到找到目标字符或到达字符串末尾。这种算法的时间复杂度为O(n)。 2. 二分查找:适用于有序字符串,但汇编实现时需要额外的辅助函数和数据结构,较为复杂。 ...

    字符串查找替换

    这可以是简单的字符查找,例如在一段文本中寻找特定字母或数字,也可以是更复杂的正则表达式匹配,用于匹配符合特定规则的字符串。在编程语言中,如Python、Java、C++等,都有内置的字符串查找函数或方法,如Python...

    汇编语言 查找字符串中的指定字符程序设计 有源码

    ### 汇编语言查找字符串中的指定字符程序设计知识点解析 #### 一、汇编语言简介 汇编语言(Assembly Language)是一种低级程序设计语言,它与机器语言一一对应,通过助记符来表示机器指令的操作码,以及用地址符号...

    java 查找字符串中出现最多的字母

    根据给定文件的信息,我们...本程序通过一系列步骤实现了查找字符串中出现最多的字母的功能。虽然程序逻辑清晰,但仍存在一定的优化空间。理解并掌握了这些基础的Java知识后,可以根据具体需求进行相应的调整和优化。

    JavaScript字符串查找1

    字符串查找,或者称为字符串搜索或字符串匹配,其目标是在一个较大的文本字符串(称为被查找文本)中找到一个较小的子字符串(称为查找字符串)的所有出现位置。在JavaScript中,可以使用多种方法实现这一功能,包括...

    字符串查找的汇编程序

    本程序通过简单的汇编语言指令实现了两个字符串的匹配查找,并且能够统计出匹配的数量。虽然程序较为基础,但它展示了汇编语言的一些核心概念和技术,如字符串操作、条件分支等,这对于初学者理解汇编语言具有一定的...

    字符串查找和替换的实现例子(1KB)

    在这个"字符串查找和替换的实现例子"中,我们可以推测这是一个简单的应用程序,它可能展示了如何在VB(Visual Basic)环境中进行字符串操作。 首先,我们有四个文件: 1. `Form1.frm`:这是VB中的窗体文件,它包含...

    在ListBox快速搜寻字符串(5KB)...

    这里的`InStr`函数用于查找字符串`searchText`在`item`中首次出现的位置,`vbTextCompare`参数确保了不区分大小写的搜索。 然而,这种方法在大量数据下可能会显得效率低下,因为它涉及到逐项检查。为提高性能,我们...

    字符串查找替换程序设计

    - **线性查找**:最简单的查找方式,逐个比较字符直到找到目标字符或遍历完整个字符串。 - **二分查找**:适用于有序字符串,但在这里并不常用,因为字符串通常无序。 3. **字符串替换**: - **简单替换**:定位...

Global site tag (gtag.js) - Google Analytics