单词排序,c++编写,希望大牛帮忙!谢谢!
描述输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照字母顺序输出这些单词(即按照字符串中字母的ASCII码排序,区分大小写,当首字母相同时,比较第2个字母,依次...
描述
输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照字母顺序输出这些单词(即按照字符串中字母的ASCII码排序,区分大小写,当首字母相同时,比较第2个字母,依次类推),要求重复的单词只输出一次。
关于输入
一行单词序列,最少1个单词,最多100个单词,每个单词长度不超过50,单词之间用至少1个空格间隔。
关于输出
按字母顺序输出这些单词,重复的单词只输出一次。
例子输入
She wants to go to Peking University to study Chinese
例子输出
Chinese
Peking
She
University
go
study
to
wants 展开
输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照字母顺序输出这些单词(即按照字符串中字母的ASCII码排序,区分大小写,当首字母相同时,比较第2个字母,依次类推),要求重复的单词只输出一次。
关于输入
一行单词序列,最少1个单词,最多100个单词,每个单词长度不超过50,单词之间用至少1个空格间隔。
关于输出
按字母顺序输出这些单词,重复的单词只输出一次。
例子输入
She wants to go to Peking University to study Chinese
例子输出
Chinese
Peking
She
University
go
study
to
wants 展开
展开全部
#include <iostream>
using namespace std;
//二杈树的二杈线索存储表示
typedef char ElemType;
typedef enum PointerTag {Link, Thread}; //Link:指针,Thread:线索
typedef struct BiThrNode{
ElemType data;
struct BiThrNode *lchild, *rchild;//左,右孩子指针
PointerTag LTag, RTag; //左,右标志
} *BiThrTree;
void InOrderTraverse_Thr(BiThrTree T);//中序遍历线索二杈树的非递归算法, T 指向头结点
void InThreading(BiThrTree & p, BiThrTree & pre); //中序线索化
BiThrTree InOrderThreading(BiThrTree T);//中序遍历二杈树,并将其中序线索化
void CreateBTree(BiThrTree & bt);//生成一棵二杈排序树(输入单个字符,以#结束)
BiThrTree NewBTree(ElemType x);//构造一个数据域为x的新结点
void Insert(BiThrTree & b, BiThrTree s);//在二杈排序树中插入新结点s
void InOrderPrint_1(BiThrTree p); //中序遍历输出结点(递归)
int main()
{
using namespace std;
//二杈树的二杈线索存储表示
typedef char ElemType;
typedef enum PointerTag {Link, Thread}; //Link:指针,Thread:线索
typedef struct BiThrNode{
ElemType data;
struct BiThrNode *lchild, *rchild;//左,右孩子指针
PointerTag LTag, RTag; //左,右标志
} *BiThrTree;
void InOrderTraverse_Thr(BiThrTree T);//中序遍历线索二杈树的非递归算法, T 指向头结点
void InThreading(BiThrTree & p, BiThrTree & pre); //中序线索化
BiThrTree InOrderThreading(BiThrTree T);//中序遍历二杈树,并将其中序线索化
void CreateBTree(BiThrTree & bt);//生成一棵二杈排序树(输入单个字符,以#结束)
BiThrTree NewBTree(ElemType x);//构造一个数据域为x的新结点
void Insert(BiThrTree & b, BiThrTree s);//在二杈排序树中插入新结点s
void InOrderPrint_1(BiThrTree p); //中序遍历输出结点(递归)
int main()
{
展开全部
#include <iostream>
#include <string>
#include <algorithm>
#define maxsize 20
using namespace std;
int main()
{
string str[maxsize]={}; //假设最多读入maxsize 个单词,可以任意更改(下面的数字都要改)
char temp = NULL;
int i=0;
do{ //用do…while循环读入单词,并保存到字符串数组中
cin>>str[i];
i++;
}while ((temp=cin.get()) != '\n'); //回车结束读入
sort(str,str+maxsize); //用C++内置函数排序,默认为升序
for(int j=0;j<maxsize-1; j++) //输出之。
{
if(!str[j+1].empty()&& str[j] != str[j+1]) //字符串不空,并且不和下一个字符串重复
cout<<str[j+1]<<endl; //则输出之
}
}
//不能连续读入空格,程序的缺陷,你改下吧……我还没有想到该怎么办…………
#include <string>
#include <algorithm>
#define maxsize 20
using namespace std;
int main()
{
string str[maxsize]={}; //假设最多读入maxsize 个单词,可以任意更改(下面的数字都要改)
char temp = NULL;
int i=0;
do{ //用do…while循环读入单词,并保存到字符串数组中
cin>>str[i];
i++;
}while ((temp=cin.get()) != '\n'); //回车结束读入
sort(str,str+maxsize); //用C++内置函数排序,默认为升序
for(int j=0;j<maxsize-1; j++) //输出之。
{
if(!str[j+1].empty()&& str[j] != str[j+1]) //字符串不空,并且不和下一个字符串重复
cout<<str[j+1]<<endl; //则输出之
}
}
//不能连续读入空格,程序的缺陷,你改下吧……我还没有想到该怎么办…………
参考资料: http://hi.baidu.com/posinfo/blog/item/4d1a6e35a49b7ebed0a2d3e0.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
写好了
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
void show(string str)
{
cout<<str<<endl;
}
int main(void)
{
size_t index = 0,end,t_index = 0;
vector<string> container;
vector<string>::iterator pos;
string str("She wants to go to Peking University to study Chinese"),token;
while((index = str.find_first_of(' ',t_index)) != -1)
{
if(t_index == 0)
container.push_back(str.substr(0,index));
while(str[index] == ' ')
index++;
t_index = index;
end = str.find_first_of(' ',index);
token = str.substr(index,end - index);
container.push_back(token);
}
sort(container.begin(),container.end());
pos = unique(container.begin(),container.end());
container.erase(pos);
for_each(container.begin(),container.end(),show);
return 0;
}
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
void show(string str)
{
cout<<str<<endl;
}
int main(void)
{
size_t index = 0,end,t_index = 0;
vector<string> container;
vector<string>::iterator pos;
string str("She wants to go to Peking University to study Chinese"),token;
while((index = str.find_first_of(' ',t_index)) != -1)
{
if(t_index == 0)
container.push_back(str.substr(0,index));
while(str[index] == ' ')
index++;
t_index = index;
end = str.find_first_of(' ',index);
token = str.substr(index,end - index);
container.push_back(token);
}
sort(container.begin(),container.end());
pos = unique(container.begin(),container.end());
container.erase(pos);
for_each(container.begin(),container.end(),show);
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询