範例程式碼 uva10800
//uva10800
#include <iostream>
#include <string>
using namespace std;
int main() {
char table[106][55];
int now, up, down, len;
int N, cnt = 0;
cin >> N;
string s;
while (N--) {
cin >> s;
now = up = down = 53;
len = s.length();
for (int i = 0; i < 106; ++i) {
for (int j = 0; j < 54; ++j)
table[i][j] = ' ';
table[i][54] = '\0';
}
for (int i = 0; i < len; ++i) {
switch (s[i]) {
case 'R':
if (i && s[i - 1] == 'R')
++now;
table[now][i] = '/';
break;
case 'F':
if (i && s[i - 1] != 'R')
--now;
table[now][i] = '\\';
break;
case 'C':
if (i && s[i - 1] == 'R')
++now;
table[now][i] = '_';
break;
}
if (now > up)
up = now;
if (now < down)
down = now;
}
//消後面空白
for (int i = up; i >= down; --i) {
for (int j = len; j > 0; --j) {
if (table[i][j] == ' ')
table[i][j] = '\0';
else
break;
}
}
cout << "Case #" << ++cnt << ":" << endl;
for (int i = up; i >= down; --i) {
cout << "| ";
cout << table[i] << endl;
}
cout << '+';
for (int i = 0; i < len + 2; ++i)
cout << '-';
cout << endl << endl;
}
}