Advertisement
Guest User

FTML

a guest
Aug 30th, 2013
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.40 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4.  
  5.  
  6. class Program
  7. {
  8.     static string FormatText(string command, string input)
  9.     {
  10.         char[] charr;
  11.         string result = "";
  12.         switch (command)
  13.         {
  14.             case "":
  15.                 result = input;
  16.                 break;
  17.             case "<upper>":
  18.                 result =  input.ToUpper();
  19.                 break;
  20.             case "<lower>":
  21.                 result = input.ToLower();
  22.                 break;
  23.             case "<del>":
  24.                 result = "";
  25.                 break;
  26.             case "<rev>":
  27.                 charr = input.ToCharArray();
  28.                 Array.Reverse(charr);
  29.                 result = new string(charr);
  30.                 break;
  31.             case "<toggle>":
  32.                 charr = input.ToCharArray();
  33.                 for (int i = 0; i < charr.Length; i++)
  34.                     if (char.IsLower(charr[i]))
  35.                         charr[i] = char.ToUpper(charr[i]);
  36.                     else if (char.IsUpper(charr[i]))
  37.                         charr[i] = char.ToLower(charr[i]);
  38.                 result = new string(charr);
  39.                 break;
  40.         }
  41.         return result;
  42.     }
  43.  
  44.     static string DoText(string command, string input)
  45.     {
  46.         while (input.Contains("<"))
  47.         {
  48.             int startCloseTag = input.IndexOf("</");
  49.             int endCloseTag = startCloseTag + input.Substring(startCloseTag).IndexOf('>');
  50.             string closeTag = input.Substring(startCloseTag, endCloseTag - startCloseTag + 1);
  51.             string openTag = closeTag.Remove(1, 1);
  52.             int startOpenTag = input.Substring(0, startCloseTag).LastIndexOf(openTag);
  53.             int endOpenTag = startOpenTag + openTag.Length;
  54.             string text = input.Substring(endOpenTag, startCloseTag - endOpenTag);
  55.             text = FormatText(openTag, text);
  56.             input = input.Substring(0, startOpenTag) + text + input.Substring(endCloseTag + 1);
  57.         }
  58.         return input;
  59.     }
  60.  
  61.     static void Main()
  62.     {
  63.         int numLines = int.Parse(Console.ReadLine());
  64.         StringBuilder sb = new StringBuilder();
  65.         for (int i = 0; i < numLines; i++)
  66.         {
  67.             if (i > 0)
  68.                 sb.Append(Environment.NewLine);
  69.             sb.Append(Console.ReadLine());
  70.         }
  71.         Console.WriteLine(DoText("", sb.ToString()));
  72.     }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement