对字符串中的单词排序
2014-03-23 11:14
190 查看
/*
对字符串中的单词排序
*/
#include <iostream>
#include <string>
using namespace std;
struct node
{
char s[100];
};
void main()
{
node str[100];
int k=0,j=0;;
char input[100];
cin.getline(input,100);//因为要接收' ',所以不能用cin
int n=0;
char *pin=input;
while(*pin!='\0')//提取单词
{
j=0;
while(*pin==' ' && *pin!='\0')
pin++;
while(*pin!=' '&& *pin!='\0')
{
str[k].s[j++]=*pin++;
}
str[k].s[j]='\0';
if(*pin!='\0')//不能少
{
k++;
n++;
}
}
cout<<n;
for(int i=0;i<n;i++)//冒泡排序
{
for(int j=0;j<n-1;j++)
{
//if(strcmp(str[j].s,str[j+1].s)>0)//按字母顺序排序
if(strlen(str[j].s)>strlen(str[j+1].s))//按单词长度排序
{
node tmp;
tmp=str[j];
str[j]=str[j+1];
str[j+1]=tmp;
}
}
}
for(int i=0;i<n;i++)
cout<<str[i].s<<endl;
}
对字符串中的单词排序
*/
#include <iostream>
#include <string>
using namespace std;
struct node
{
char s[100];
};
void main()
{
node str[100];
int k=0,j=0;;
char input[100];
cin.getline(input,100);//因为要接收' ',所以不能用cin
int n=0;
char *pin=input;
while(*pin!='\0')//提取单词
{
j=0;
while(*pin==' ' && *pin!='\0')
pin++;
while(*pin!=' '&& *pin!='\0')
{
str[k].s[j++]=*pin++;
}
str[k].s[j]='\0';
if(*pin!='\0')//不能少
{
k++;
n++;
}
}
cout<<n;
for(int i=0;i<n;i++)//冒泡排序
{
for(int j=0;j<n-1;j++)
{
//if(strcmp(str[j].s,str[j+1].s)>0)//按字母顺序排序
if(strlen(str[j].s)>strlen(str[j+1].s))//按单词长度排序
{
node tmp;
tmp=str[j];
str[j]=str[j+1];
str[j+1]=tmp;
}
}
}
for(int i=0;i<n;i++)
cout<<str[i].s<<endl;
}
相关文章推荐
- Hadoop入门案例(四)全排序之自定义分区 字符串(单词)排序
- python---字符串的拼接、去重、反转、字母花样排序、单词出现判断、统计文件特定单词频率lambda、硬盘容量、列表转字符串
- 华为机试—字符串中找出单词排序
- 给一个由n个单词组成的字符串排序
- UVA 156-Ananagrams(字符串排序按序输出无重复单词)
- 将字符串中单词经排序后输出
- 尾单词长度、1 3 9 27 81 实现1-121任意算法、去除重复字符并排序、拼音转数字、按要求分解字符串
- java 正则表达式查找某段字符串中所有小写字母开头的单词并统计次数,按出现次数排序
- openjudge 计算概论 字符串 5:单词排序
- 在给定字符串中找出单词并排序
- 将字符串中单词经排序后输出
- 【Two Sigma】 数字单词混合字符串排序 Mix Sort
- 华为OJ 字符串排序
- php日志分析小脚本,分析出每行包含相同字符串的统计数量(从大到小进行排序)
- 借用字符串进行无规律排序
- sphinx 源码阅读之分词,压缩索引,倒排——单词对应的文档ID列表本质和lucene无异 也是外部排序再压缩 解压的时候需要全部扫描doc_ids列表偏移量相加获得最终的文档ID
- sql2008下order by对字符串降序排序结果会乱
- 根据model的对象对应的值(字符串)对model进行排序
- 华为OJ字符串排序
- C 字符串数组排序