阅读背景:

字符串中单词的反转

来源:互联网 

根本思想是 将全部字符串反转,再将字符串中的每一个单词反转

#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



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: