单词反转

#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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值