为什么getline()后要两次回车????(将输入的字符串按单词倒序输出)

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string s;
getline(cin,s);
int len=s.size();
for(int i=len-1;i>=0;i--)
{
if(s[i]==‘ ‘)
{
string s1;
char *p=&s[i];
s1.assign(p+1,s.end());
cout<<s1<<" ";
s.erase(p,s.end());
}

}
cout<<s<<endl;
return 0;
}

时间: 2024-08-27 16:08:20

为什么getline()后要两次回车????(将输入的字符串按单词倒序输出)的相关文章

C# 版本的 计时器类:精确到微秒 秒后保留一位小数 支持年月日时分秒带单位的输出

class TimeCount { // 临时变量,存放当前类能表示的最大年份值 private static ulong MaxYear = 0; /// <summary> /// 获取毫秒能表示的最大年份数 /// </summary> /// <returns>年份数最大值</returns> public static ulong GetMaxYearCount() { if (TimeCount.MaxYear != 0) return Time

已知两个整数a,b,且a+b=c,要求输入:a,b; 输出:c

题目: 已知两个整数a,b,且a+b=c,要求输入:a,b: 输出:c . 提示:使用赋值语句. 代码: 1 program shen2; 2 3 var 4 a,b,c:integer; 5 BEGIN 6 readln(a,b); 7 c:=a+b; 8 writeln(a,'+',b,'=',c); 9 END.

C提高_day03_两个辅助指针变量挖字符串(强化4)

#define _CRT_SECURE_NO_WARNINGS #include <stdlib.h> #include <string.h> #include <stdio.h> //两个辅助指针变量挖字符串, 的第三种内存模型 //指针做函数参数 void FreeMem(char **myp,int count) //释放内存函数 { int i=0; if(myp == NULL) { return; } for(i=0;i<count;i++) { if

C提高_day03_两个辅助指针变量挖字符串(强化3)

#define _CRT_SECURE_NO_WARNINGS #include <stdlib.h> #include <string.h> #include <stdio.h> //两个辅助指针变量挖字符串, 的第三种内存模型 //指针做函数参数 int spitString4(char *buf1,char c,char ***myp3,int *count) //**pp二级指针做输入 { char *p=NULL, *pTmp = NULL; int tmpc

C提高_day03_两个辅助指针变量挖字符串(强化2)

#include <stdlib.h> #include <string.h> #include <stdio.h> //两个辅助指针变量挖字符串, 的第三种内存模型 char ** spitString3(char *buf1,char c,int *count) //**pp二级指针做输入 { char *p=NULL, *pTmp = NULL; int tmpcount = 0; char **myp=NULL; //1 p和ptmp初始化 p = buf1;

【C语言】用函数指针变量完成:输入两个整数,让用户选择函数,选择1输出较大的数,选择2输出较小的数

<pre name="code" class="cpp">//用函数指针变量完成:输入两个整数,让用户选择函数,选择1输出较大的数,选择2输出较小的数 #include <stdio.h> int max(int x,int y) { return (x>y)?x:y; } int min(int x,int y) { return (x>y)?y:x; } int main() { int (*p)(int,int); int

编程题:指针变量作函数参数,将两个整数按由大到小的顺序输出。

分析:通过指针变量作函数参数,无需返回值和全局变量,主调函数就可以使用被调用函数改变的值. #include<stdio.h> void swap(int *p1,int *p2) { int p; p=*p1; *p1=*p2; *p2=p; } void main() { int a=3,b=4; int *ptr1,*ptr2; ptr1=&a;ptr2=&b; if(a<b) swap(ptr1,ptr2); printf("%d,%d\n",

两个有理数相加(要求输入时以分数形式,输出时也以分数形式)

上大一,老师布置了一道题,内容就是:两个有理数相加(要求输入时以分数形式,输出时也以分数形式),这道题用了大概2个多小时吧(欢迎指导),废话不多说了,直接上程序: #include<iostream>using namespace std; class rational{public: void setnumber(int n,int d); void getnumber(int& n,int& d); void gcd(int n,int d); bool operator=

(练手备忘)汇编实现将输入的字符串中的空格去掉后反序输出

功能:任意输入一个字符串,去掉其中的空格后反序输出 注:使用 int 21h 里的 0AH 功能 输入一个字符串时,字符串的第一个字节存储的是字符串的最大长度,第二个字节存储的是实际读入字符的个数 编译器使用的是MASMPlus ;#Mode = DOS MAXLEN = 64 ;设置字符串的最大长度 SPACE = ' ' ;空格 datasg segment buffer db MAXLEN+1,0,MAXLEN+1 dup(0) ;字符串输入缓冲区 string db MAXLEN+3 d