在给定字符串中找出单词

原创 2015年07月08日 20:47:08


//在给定字符串中找出单词(“单词”由大写字母和小写字母字符构成,其他非字母字符视为单词的间隔,如空格、问号、数字等等;
//另外单个字母不算单词);找到单词后,按照长度进行降序排序,(排序时如果长度相同,则按出现的顺序进行排列),
//然后输出到一个新的字符串中;如果某个单词重复出现多次,则只输出一次;如果整个输入的字符串中没有找到单词,请输出空串。
//输出的单词之间使用一个“空格”隔开,最后一个单词后不加空格。

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
int cmp(string s,string d)
{
 return s.size()>d.size();
}
void getResult(string s)
{
 int len=s.size();
 vector<string > svec;
 for(int i=0;i<len;i++)
 {
  int j=0;
  char word[100]={0};
  while(isalpha(s[i]))
  {
   word[j++]=s[i];
   i++;
  }
  word[j]='\0';
  svec.push_back(word);
 }
 sort(svec.begin(),svec.end(),cmp);
 for(int i=0;i<svec.size();i++)
 {
  for(int j=i+1;j<svec.size();j++)
  {
   if(svec[i]==svec[j])
    svec[j]="\0";
  }
 }

 for(int i=0;i<svec.size();i++)
 {
  if(svec[i]!="\0")
   cout<<svec[i]<<" ";
 }

}


void main()
{
 string s;
 getline(cin,s);
 getResult(s);
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

简单面试题::字符串按单词反转

字符串按单词反转 输入格式是:"this is a string" 输出格式是: "string a is this" 要求不能用任何库函数 这个题目看似非常简单,但是用纯C语言且...
  • architect19
  • architect19
  • 2013年05月31日 13:49
  • 7058

字符串按照单词为单位逆序排列

我们前面已经写过一个简单字符串逆序排序的方法,这里再开一个字符串排序问题: 给定一个字符串“I love China”,编写程序完成以单词为单位的逆序,如"China love I",并要求不使用第三...
  • zqixiao_09
  • zqixiao_09
  • 2015年12月16日 15:22
  • 1448

题目1159: 单词替换

题目描述 输入一个字符串,以回车结束(字符串长度   输入 多组数据。每组数据输入包括3行, 第1行是包含多个单词的字符串 s, 第2行是待...
  • SJF0115
  • SJF0115
  • 2013年04月05日 22:44
  • 2109

Jobdu 题目1111:单词替换

http://ac.jobdu.com/problem.php?pid=1111
  • xtzmm1215
  • xtzmm1215
  • 2014年08月11日 17:18
  • 948

统计字符串中出现最多的单词和次多的单词

题目:统计字符串中出现最多的单词和次多的单词。 测试用例:"This This This a dog,not a cat!"  输出:This  3次  a  2次 思路:先把这个字符串分词,放入一个...
  • keep_moving_cqu
  • keep_moving_cqu
  • 2013年09月08日 23:13
  • 2001

将输入字符串中每个单词的首字母变成大写

将输入字符串中每个单词的首字母变成大写字母
  • ShenJu_DL_ShengHuo
  • ShenJu_DL_ShengHuo
  • 2015年09月14日 19:35
  • 2928

将字符串中的每个单词顺序进行颠倒,单词还是原来的单词,字母顺序不发生变化,将字符串中的空格用 代替

c单词顺序逆换 [cpp] view plaincopy /*测试数据:Shen zhen is a beautiful city!*/   /*运行...
  • flyingleo1981
  • flyingleo1981
  • 2014年06月09日 18:43
  • 1146

输入一个字符串,把这个字符串中的每个单词打印出来,即输出到屏幕

输入一个字符串(或英文),把这个字符串中的每个单词打印出来,即输出到屏幕...
  • qingshuilingyun
  • qingshuilingyun
  • 2014年11月06日 21:55
  • 772

给定一个file, 查找出里面出现频率最高的10个单词

之前已经总结了给定一组数字, 如何在线性时间内找到第k小的数字。 这两个问题看似有十分subtle的关系。 很显然这里是找最大的前K个单词。 单词相当于卫星数据, 直接对单词的键值, 即频率排序啦。 ...
  • a130737
  • a130737
  • 2015年03月24日 17:15
  • 1300

Java实现字符串中单词的逆转

算法思路: 第一步:从字符串的尾部向前遍历字符串,遇到空格/第一个字符、调用函数world_Print()       第二步:world_Print()将传过来的字符放入桟中,然后出桟拼接到逆转后的...
  • I_peter
  • I_peter
  • 2016年09月12日 17:01
  • 698
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在给定字符串中找出单词
举报原因:
原因补充:

(最多只允许输入30个字)