//字符串逆序实现
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<windows.h>
using namespace std;
void reverse(char *left,char* right)
{
while(left<right)
{
char tmp=0;//交换
tmp= *left;
*left=*right;
*right=tmp;
left++;//分别向中间移动
right--;
}
}
int main()
{
char arr[100]={0};
gets(arr);//获得字符串
int len=strlen(arr);//计算字符串长度
reverse(arr,arr+len-1);
char* start =arr;//一个单词的起始位置
while(*start!='\0')
{
char* end=start;//从头开始找末尾的位置
while(*end!=' ' && *end !='\0')// ''单词结尾 '\0'句子结尾
{
end++;
}
reverse(start,end-1);//逆置该单词
if(*end!='\0')
{
start=end+1; //下一个单词的开始位置
}
else
{
start = end;//语句的最后位置啦
}
}
cout<<arr;//输出逆置后的字符串
Sleep(80000);
return 0;
}
2.结果