单词翻转

来源:互联网 发布:延庆网络招聘 编辑:程序博客网 时间:2024/05/16 08:03

Description

输入一个句子(一行),将句子中的每一个单词翻转后输出

Input

输入有多行,每行不超过500个字符。单词之间以空格、逗号、双引号、分号、句号隔开。

Output

翻转每一个单词后的字符串

Sample Input

hello worldab cd ef

Sample Output

olleh dlrow ba dc fe 

HINT


//自己的代码

#include<stdio.h>#include<string.h>int main(){char a[1000],d[100][100],w;int i,m,n,t,j;while(gets(a)){m=0;n=0;    for(i=0;a[i];i++){if(a[i]==' '||a[i]==','||a[i]=='.'||a[i]=='""'||a[i]==';'){d[m][n++]='\0';m++;n=0;}elsed[m][n++]=a[i];}    d[m++][n]='\0';for(i=0;i<m;i++){   t=strlen(d[i]);   if(t==0)   continue;//必须有否则出现Presentation Error,会出现多余的空格   for(j=0;j<t/2;j++)   {   w=d[i][j];   d[i][j]=d[i][t-1-j] ;   d[i][t-1-j]=w;   }   printf("%s ",d[i]);}printf("\n");}return 0;}


首先介绍一下reverse()函数

reverse函数的作用是:反转一个容器内元素的顺序。函数参数:reverse(first,last);//first为容器的首迭代器,last为容器的末迭代器。它没有任何返回值

这个函数比较简单,看一个例题:输入一个字符串,输出反转后的字符串。
直接调用函数。
代码:
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
    string str;
    cin>>str;
    reverse(str.begin(),str.end());
    cout<<str<<endl;
    return 0;
}

//其他方法
#include<iostream>#include<stdio.h>#include<string.h>#include<string>#include<algorithm>using namespace std ;int main()  {    char s[1000] ;    while(gets(s))  {        string str[500] ;        char *p = NULL ;        int count = 0  ;        for(p = strtok(s," \",;.") ; p ; p = strtok(NULL," \",;."))//单词之间以空格、逗号、双引号(\")、分号、句号隔开。            str[count++] = p ;//将每个单词存放到字符串数组str中        for(int i = 0 ; i < count ; i++)    {            reverse(str[i].begin(),str[i].end()) ;//反转            cout << str[i] << " " ;        }        cout << endl ;    }    return 0 ;}

0 0
原创粉丝点击