根本思想是 将全部字符串反转,再将字符串中的每一个单词反转
#include <iostream>
using namespace std;
int reverseStr(char *str,int begin,int end)
{
char tmp;
if(str==NULL)
{
return 0;
}
if(begin<end)
{
tmp=str[begin];
str[begin]=str[end];
str[end]=tmp;
reverseStr(str,begin+1,end-1);
}
return 1;
}
int reverseWords(char *str)
{
int wordBegin=0,wordEnd=0,len=0;
if(str==NULL||*str=="根本思想是 将全部字符串反转,再将字符串中的每一个单词反转
#include <iostream>
using namespace std;
int reverseStr(char *str,int begin,int end)
{
char tmp;
if(str==NULL)
{
return 0;
}
if(begin<end)
{
tmp=str[begin];
str[begin]=str[end];
str[end]=tmp;
reverseStr(str,begin+1,end-1);
}
return 1;
}
int reverseWords(char *str)
{
int wordBegin=0,wordEnd=0,len=0;
if(str==NULL||*str=="\0")
{
return 0;
}
len=strlen(str);
reverseStr(str,0,len-1);//将全体字符串反转
while(wordEnd<len)
{
if(str[wordEnd]!=" ")
{
wordBegin=wordEnd;
while(str[wordEnd]!=" "&&str[wordEnd]!="\n"&&wordEnd<len)
{
wordEnd++;
}
wordEnd--;
reverseStr(str,wordBegin,wordEnd);//将里面的每一个单词反转
}
wordEnd++;
}
return 1;
}
int main()
{
char str[]="I am student!";
cout<<str<<endl;
reverseWords(str);
cout<<str<<endl;
return 0;
}
")
{
return 0;
}
len=strlen(str);
reverseStr(str,0,len-1);//将全体字符串反转
while(wordEnd<len)
{
if(str[wordEnd]!=" ")
{
wordBegin=wordEnd;
while(str[wordEnd]!=" "&&str[wordEnd]!="\n"&&wordEnd<len)
{
wordEnd++;
}
wordEnd--;
reverseStr(str,wordBegin,wordEnd);//将里面的每一个单词反转
}
wordEnd++;
}
return 1;
}
int main()
{
char str[]="I am student!";
cout<<str<<endl;
reverseWords(str);
cout<<str<<endl;
return 0;
}
#include <iostream