LeetCode:スペースの置換

1212 ワード

タイトルの説明:
文字列のスペースを「%20」に置き換える関数を実装してください.例えば、文字列がWe Are Happyである.置換後の文字列は、We%20 Are%20 Happyである.
 :

 。 
 , 。

 :

 , 。

 :

We Are Happy

 :

We%20Are%20Happy
#include
#include
#include
#include
#include
#include
using namespace std;
// %20
class Solution {
public:
	char* replaceSpace(char* str, int length)
	{
		int mstrlen = 0;
		int spacelen = 0;
		for (int i = 0; str[i] != '.'; i++)
		{
			mstrlen++;
			if (str[i] == ' ')
				spacelen += 3;
		}
		int newlength = mstrlen + spacelen;
		if (newlength > length)
			return NULL;
		while (mstrlen >= 0 && newlength > mstrlen)
		{
			if (str[mstrlen] == ' ')
			{
				str[newlength--] = '0';
				str[newlength--] = '2';
				str[newlength--] = '%';
			}
			else
				str[newlength--] = str[mstrlen];
			mstrlen--;
		}
	 
		return str;
	}
};

int main()
{
	Solution  s;
	char str[46] = {"We are happy.                  " };
	cout << str << endl;
	cout << s.replaceSpace(str, 46) << endl;
	return 0;
}