需要注意的是,该题和单词翻转之间的区别!单词翻转输入“I am a student.”,则输出“student.a am I”。将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。 如:输入“I am a student”,输出“tneduts a ma I”。
输入参数:
inputString:输入的字符串
返回值:
输出转换好的逆序字符串
#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;
}
注意两者的区别!