单词反转

描述

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

输入只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。输出翻转每一个单词后的字符串,单词之间的空格需与原文一致。样例输入

hello world

样例输出

olleh dlrow

 

#include<stdio.h>
#include<string.h>
char c[505];
void swap(int a,int b);
int main()
{
   int a=0;
   int i;
   gets(c);
   
    for (i=0;i<=strlen(c);i++)
    {
        if (c[i]==' '||c[i]=='\0')
        {
            swap(a,i-1);
            a=i+1;
        }
    }
    puts(c);
    return 0;
}

void swap(int a,int b) 
{
    char t;
    int i,j;
    for (i=a,j=b;i<=j;i++,j--)
    {
        t=c[i];
        c[i]=c[j];
        c[j]=t;
    }
}

  

附录1:一个单词反序输出

#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
    string str;
    cin>>str;
    
    reverse(str.begin(),str.end());
    for(int i=0;i<str.size();i++)
       cout<<str[i];

    return 0;
}

附录2:整句话以及每个单词都反序

 

void reverse(char *p)  
{  
    if(*p=='\0')     return;  
    reverse(p+1);  
    printf("%c",*p);  
}   
int main()  
{  
    char str[100];
    gets(str);
    
    reverse(str);   
	 
    printf("\n");  
    return 0;  
}  

  

posted @ 2018-05-01 21:37  道微真理  阅读(187)  评论(0编辑  收藏  举报