UVa 272 : TeX Quotes
問題リンク:TeX Quotes
問題概要:
複数の行からなる文字列が与えられる
その文字列中に含まれる最初の " は `` に、2回めの " は '' に変換し出力せよ
解法:
その通りにやる
int cnt = 0 みたいな変数を用意しておいて
”をみつける度に1加えていく
cnt が偶数なら `` に、奇数なら'' に変換するとよい
コード:
#include<iostream> using namespace std; int main() { string line; int cnt = 0; while(getline(cin,line)) { for(int i=0;i<line.size();i++) { if(line[i] == '"' && !(cnt&1)) { cout << "``"; cnt++; } else if(line[i] == '"' && (cnt&1)) { cout << "''"; cnt++; } else cout << line[i]; } cout << endl; } return 0; }