HWOJ-字符串的逆序

将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。 如:输入“I am a student”,输出“tneduts a ma I”。

  输入参数:

inputString:输入的字符串

 

返回值:

输出转换好的逆序字符串

需要注意的是,该题和单词翻转之间的区别!单词翻转输入“I am a student.”,则输出“student.a am I”。

#include<iostream>  
  
#include"stdio.h"  
#include"string.h"  
using namespace std;  
/* 字符串反转 
*/  
void reverseStr(char* str, int i, int j)  
{  
    for (; i < j; i++, j--)  
    {  
        char tmp;  
        tmp = str[i];  
        str[i] = str[j];  
        str[j] = tmp;  
    }  
    return;  
}  
  
/* 句子反转 
*/  
void reverseWords(char* str)  
{  
    int i = 0;  
    char* subStrStart;  
    char* subStrEnd;  
    char* currentPos;  
  
    currentPos = str;  
    while (*currentPos != '\0')  
    {  
        subStrStart = currentPos;  
        while (*currentPos != ' ' && * currentPos != '\0')  
            currentPos++;  
        subStrEnd = currentPos - 1;  
        cout << (subStrEnd - str) << endl;// 注意此处,字符做减法的结果!!! ???可以直接得到位置信息???记录待翻转字符的起始和终点位置!  
        reverseStr(str, (int)(subStrStart - str), (int)(subStrEnd - str));  
        currentPos++;  
    }  
    return;  
}  
  
  
  
  
  
  
int main(int argc, char **argv)  
{  
    /*char test[5]="cd"; 
    char test2[10]="abcd"; 
    cout<<(test2-test)<<endl;*/  
  
    char str[20];// "I am a student.";  
    gets_s(str);// >> endl;  
    //进行单词的逆序  
    int Len = strlen(str);  
    //char *temp;  
    for (int i = Len-1; i >=0; i--)  
    {  
        cout << str[i];  
    }  
    //reverseStr(str, 0, strlen(str) - 1);//这个是单词翻转  
    //reverseWords(str);//  
    //printf("%s\n", str);  
    return 0;  
  
  
} 

 

posted @ 2015-09-07 17:33  lisahappy  阅读(443)  评论(0编辑  收藏  举报