#include<stdio.h>
#include<stack>
#include<string>
#include<iostream>
using namespace std;
void reverse(char str[],int start,int end)
{
int len,i;
char temp;
len=end-start+1;
for(i=0;i<(len/2);i++)
{
temp=str[start+i];
str[start+i]=str[start+len-1-i];
str[start+len-1-i]=temp;
}
}
char *reverseWord(char *str)
{
int len=strlen(str);
reverse(str,0,len-1);
int start=0;
int end=0;
while(str[end]!='\0')
{
if(str[start]==' ')
{
start++;
end++;
continue;
}
else if(str[end+1]==' ')
{
reverse(str,start,end);
end++;
start=end;
}
else if(str[end+1]=='\0')
{
reverse(str,start,end);
end++;
}
else
{
end++;
}
}
return str;
}
int main()
{
char str[]="i love you";
int len;
len=strlen(str);
reverseWord(str);
cout<<str;
system("pause");
return 0;
}
#include<iostream>
#include<string>
using namespace std;
void reverse(string &InStr,int begin,int end)
{
int Inlen,i;
char ch;
Inlen=InStr.length();
while(begin<end)
{
ch=InStr[begin];
InStr[begin]=InStr[end];
InStr[end]=ch;
begin++;
end--;
}
}
void ReverseString(string &s)
{
reverse(s,0,s.length()-1);
int len,begin,end,i;
len=s.length();
begin=0;end=0;i=0;//the sky
while(end<=len)
{
if(s[end]==' '|| end==len)
{
reverse(s,begin,end-1);
end++;
begin=end;
}
else
{
end++;
}
}
}
int main()
{
string s1="the sky is blue";
cout<<s1<<endl;
ReverseString(s1);
cout<<s1;
system("pause");
return 0;
}