如果一道字符串的题不能让我自闭的话,那就两道

先输入你要输入的字符串的个数。然后换行输入该组字符串。每个字符串以回车结束,每个字符串少于一百个字符。如果在输入过程中输入的一个字符串为“stop”,也结束输入。
然后将这输入的该组字符串按每个字符串的长度,由小到大排序,按排序结果输出字符串。


Input 字符串的个数,以及该组字符串。每个字符串以‘\n’结束。如果输入字符串为“stop”,也结束输入. Output 将输入的所有字符串按长度由小到大排序输出(如果有“stop”,不输出“stop”)。

Sample Input

5
sky is grey
cold
very cold
stop
3
it is good enough to be proud of
good
it is quite good

Sample Output

cold
very cold
sky is grey
good
it is quite good
it is good enough to be proud of

Hint 根据输入的字符串个数来动态分配存储空间(采用new()函数)。每个字符串会少于100个字符。
测试数据有多组,注意使用while()循环输入。

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
const int maxn=2000;
int n,cnt;bool cmp(string b,string c)
{return b.size()<c.size();
}int main()
{while(cin>>n){cin.ignore();// EOFvector<string> jack;jack.reserve(n);string a;for(int i=1;i<=n;i++){getline(cin,a);//读入一整行 if(a=="stop")//string数组每一个都是一坨字符串
            {break;}jack.push_back(a);//STL教学式使用
        }sort(jack.begin(),jack.end(),cmp);for(int i=0;i<jack.size();i++){cout<<jack[i];if(i!=jack.size()) cout<<endl;}}return 0;
}

cin.ignore()函数是C++标准输入流(cin)中的一个方法。cin.ignore()函数中有两个参数,分别为数值型的a 和 字符型的 ch ,即cin.ignore( a, ch )。它表示从输入流 cin 中提取字符,提取的字符被忽略,不被使用。而每抛弃一个字符,它都要进行计数和比较字符:如果计数值达到 a 或者被抛弃的字符是 ch ,则cin.ignore() 函数执行终止;否则,它继续等待。

它的一个常用功能就是用来清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响。例如可以这么用,cin.ignore(1024, '\n'),通常把第一个参数设置得足够大,这样实际上是为了只有第二个参数 '\n' 起作用,所以这一句就是把回车(包括回车)之前的所以字符从输入缓冲流中清除出去。

如果默认不给参数的话,默认参数为cin.ignore(1, EOF),即把EOF前的1个字符清掉,没有遇到EOF就清掉一个字符然后结束。
---------------------
作者:micro小宝
来源:CSDN
原文:https://blog.csdn.net/wxbmelisky/article/details/48596881
版权声明:本文为博主原创文章,转载请附上博文链接!

string中有两个函数:reserve()和resize(),最近细细的看了下这两个函数的使用,记录下来。

reserve为容器预留足够的空间,避免不必要的重复分配,分配空间大于等于函数的参数,影响capacity。

resize调整容器中有效数据区域的尺寸,如果尺寸变小,原来数据多余的截掉。若尺寸变大,不够的数据用该函数第二个参数填充,影响size。

需要连续从标准输入读取数据时,可以采用下面两种不同的方式判断文件结束

int i;
while(scanf("%d",&i) != EOF){do whatever...}
while(cin >> i){do whatever...}

首先看scanf,当成功读取时返回读取的项的数目,如:scanf("%d %d",&i,&j)返回2,scanf("%d %f %s",&i, &f, c)返回3。这个数目可以是你希望读取的项数,也可能小于希望读取的项数,在匹配失败时返回0(如:用scanf("%d",&i)接收整数而输入是英文字母时就返回0)。需要注意的是用while(scanf("%d",&i) != EOF)时,接收到像876652098643267843超过int型取值范围的数时循环也会继续执行;相同的情况出现在while(cin >> i)上时循环会立即结束。
---------------------
作者:candj
来源:CSDN
原文:https://blog.csdn.net/candj/article/details/4419585
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/WHFF521/p/11219053.html

字符串排序 墨迹了半天的自闭题目相关推荐

  1. mysqlorderby数字字符串排序_Python中的元组排序和深度比较

    比较Python中的东西.这听起来几乎是不需要教的,但是我发现Python的比较运算符经常被Python新手误解和低估. 我们来回顾一下Python的比较运算符如何处理不同类型的对象,然后看看如何使用 ...

  2. R语言使用str_order函数和str_sort函数对字符向量进行排序(str_order返回字符串排序的次序值(索引)、str_sort返回排序后的字符串)

    R语言使用str_order函数和str_sort函数对字符向量进行排序(str_order返回字符串排序的次序值(索引).str_sort返回排序后的字符串) 目录

  3. [C]字符串排序之-冒泡法

    在oj刷题,遇见一题字符串排序题. 脑海里瞬间闪过数组排序. 思路有了,打开题解看看别人的思路,发现好多人的排序方法显得比较臃肿,可能也是我的水平不够,欣赏不来吧. 不过用冒泡法排序的时候一定要记得字 ...

  4. python【蓝桥杯vip练习题库】ALGO-234第五次作业:字符串排序

    试题 算法训练 第五次作业:字符串排序 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 输入一个小写字符串,按从小到大的顺序输出. 输入格式 bcaed 输出格式 abcde 顶格输 ...

  5. 给一个由n个单词组成的字符串排序

    给一个由n个单词的组成的字符串排序,单词间由空格分隔. 如果字符串为b ab bc,则输出为ab b bc 思路:先将字符串分解成单词数组,然后排序,最后输出 代码如下: #include <s ...

  6. 【C 语言】二级指针作为输入 ( 指针数组 | 指针数组排序 | 字符串排序 | strcmp 函数 )

    文章目录 一.strcmp 函数 二.指针数组排序 ( 字符串排序 ) 二.完整代码示例 一.strcmp 函数 strcmp 是 String Compare 缩写 , 该函数用于比较两个字符串 ; ...

  7. HJ14 字符串排序

    描述 给定n个字符串,请对n个字符串按照字典序排列. 输入描述: 输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母. 输出描述: 数据 ...

  8. 题库练习5(句子逆序、字符串排序、int型二进制表示中1的个数、购物单)

    1. 句子逆序 将一个英文语句以单词为单位逆序排放.例如"I am a boy",逆序排放后为"boy a am I".所有单词之间用一个空格隔开,语句中除了英 ...

  9. boost::sort模块实现spreadsort 字符串排序示例

    boost::sort模块实现spreadsort 字符串排序示例 实现功能 C++实现代码 实现功能 boost::sort模块实现spreadsort 字符串排序示例 C++实现代码 #inclu ...

最新文章

  1. 3- MySQL数据类型
  2. 在nginx上部署vue项目(history模式);
  3. 写给大数据开发初学者的话 | 附教程
  4. html设置图片不可拖拽,js css3实现图片拖拽效果
  5. java一键保存表格增删改,一个增删改功能的表格小demo
  6. matlab如何测两点的角度_【邢不行|量化小讲堂系列01-Python量化入门】如何快速上手使用Python进行金融数据分析...
  7. Helixoft VSdocman 是一个集成于Visual Studio并提供了命令行版本的帮助文档编译工具...
  8. iOS分段选择器、旅行App、标度尺、对对碰小游戏、自定义相册等源码
  9. Vue cli3使用vue-awesome-swiper
  10. 【C++】(三) MFC入门教程 (VS 2005)
  11. 【原】115网盘下载地址解析工具(暂停更新)
  12. LSB图像隐写和峰值信噪比计算的python实现
  13. 多业务建模在美团搜索排序中的实践
  14. 抖音超火的动态图如何做 怎么制作GIF
  15. 使用模板导入excel 得到数据
  16. BIRD 与 BGP 的新手开场 --转
  17. 核磁共振成像脉冲序列——杨正汉(2)
  18. 使用计算机管理文件教后反思,《管理计算机中的文件》教学设计
  19. 路径中的“./“,“../“,“/“ 代表的含义
  20. 魔兽世界灵魂兽刷新和服务器维护,魔兽世界灵魂兽 刷新地点整理及外观点评...

热门文章

  1. Windows中多线程同步之事件(Event)
  2. C++ 关键字 (try-finally) 收藏
  3. linux创建进程fork函数和vfork函数
  4. Cordova环境搭建
  5. 3D数学基础:图形与游戏开发---随笔四
  6. VMware网络设置详解 打造超级虚拟网络 (说的最为复杂和全面的)
  7. python中的 and以及or
  8. 操作系统(二十一)信号量机制
  9. 操作系统(二)操作系统的四个特征
  10. 安天移动安全:Janus高危漏洞深度分析