zoukankan      html  css  js  c++  java
  • 提取文本中的单词,单词简单排序

    首先需要解决的是从文本中提取出每个单词,那么如何提取比较准确呢?

      定义一个二维数组,用来存放提取出来的单词,每行存放一个单词;

      从第一行开始,把第一个字符放入数组中,如果第一个字符不是字母,继续把第二个字符放入第一个字符位置,依次这样,直到第一个位置放的是字母字符为止,如果下一次放的是字母字符,则继续添加下一个,如果不是,说明从第一个位置到当前位置是一个单词,应该在当前位置加入 ‘’ (字符串结束标志)进行下一行;

    然后就是字符串的简单比较,字符串的比较用 strcmp 函数 , 调用 qsort 函数即可 ;

    #include<iostream>
    #include<string.h>
    #include<string>
    #include<stdio.h>
    #include<ctype.h>
    #include<algorithm>
    #include<iostream>
    using namespace std ;
    
    int cmp(const void *s1 , const void *s2)	{
    	char *_s1 = (char *)s1 ;
    	char *_s2 = (char *)s2 ; 
    	return strcmp(_s1,_s2) ;
    }
    
    char word[510000][210];  
    
    int main()	{
    	int i = 0 , j = 0 ;
    	char c ;
    	while( (c = getchar()) != EOF )	{
    		c = tolower(c) ;
    		word[i][j] = c ;
    		if(!isalpha(c) && isalpha(word[i][0]))	{
    			word[i][j] = '' ;
    			j = 0 ;
    			i++ ;
    			continue ;
    		}
    		if(isalpha(c) && isalpha(word[i][0]))
    			j++ ;
    	}
    	qsort(word,i,sizeof(word[0]),cmp) ;
    	for(int k = 0 ; k < i ; k++)
    		if(strcmp(word[k],word[k-1]) != 0 )
    			cout << word[k] << endl ;
    	return 0 ;
    }
    
  • 相关阅读:
    前端学习之jquery
    Http协议
    JavaScript 的简单学习2
    面向对象高级编程(1)-使用__slots__
    面向对象编程(4)-获取对象信息
    面向对象编程(3)-继承和多态
    面向对象编程(2)-访问限制
    面向对象编程(1)-类和实例
    模块(2)-安装第三方模块
    模块(1)-使用模块
  • 原文地址:https://www.cnblogs.com/scottding/p/3656954.html
Copyright © 2011-2022 走看看