Problem:
りんごと桃

福島県は果物の産地としても有名で、その中でも特に桃とりんごは全国でも指折りの生産量を誇っています。ところで、ある販売用の英文パンフレットの印刷原稿を作ったところ、手違いでりんごに関する記述と桃に関する記述を逆に書いてしまいました。

あなたは、apple と peach を修正する仕事を任されましたが、なにぶん面倒です。１行の英文を入力して、そのなかの apple という文字列を全て peach に、peach という文字列を全てapple に交換した英文を出力するプログラムを作成してください。

Input

英文（半角英数字、空白、記号を含む）が１行に与えられます。入力される文字列の長さは 1000 以下です。

Output

apple とpeach という文字列を交換した英文を１行に出力します。

Sample Input

the cost of one peach is higher than that of one apple.

Output for the Sample Input

the cost of one apple is higher than that of one peach.

Solution in C# (judge verdict: Accepted)

using System;

namespace _050_AppleandPeach
{
	class Program
	{
		static void Main ( string[] args )
		{
			char[] result = Console.ReadLine ().ToCharArray ();
			string Apple = "apple";
			string Peach = "peach";

			int index = 0;
			while (index < result.Length)
			{
				//apple
				Parse (result, index, Apple, Peach, out index);
				//peach
				Parse (result, index, Peach, Apple, out index);

				index++;
			}

			Console.WriteLine (result);
		}

		static void Parse ( char[] charArray, int index, string searchStr, string parseStr, out int resultIndex )
		{
			if (index + searchStr.Length <= charArray.Length) 
			{
				bool isParse = true;

				for (int index2 = 0; index2 < searchStr.Length; index++, index2++)
				{
					if (charArray[index] != searchStr[index2])
					{
						isParse = false;
						break;
					}
				}

				if (isParse)
				{
					int shift = index - parseStr.Length;
					for (int lp = 0; lp < parseStr.Length; lp++)
					{
						charArray[lp + shift] = parseStr[lp];
					}
				}
			}

			resultIndex = index;
		}
	}
}