Timus 1226

#include <iostream>
#include
<string>
using namespace std;

int len = 0, buf_len = 0;
char output[255 * 1000 + 2000] = { '\0' }, buf[300] = { '\0' };
char c;

int main() {
//FILE *p = fopen("in.txt", "r");
while(scanf("%c", &c) != EOF) {
if( c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' ) { //是字母
buf[buf_len++] = c;
}
else {
while(buf_len)
output[len
++] = buf[--buf_len]; //倒序存放

output[len
++] = c; //设置间隔符
}
}

while(buf_len) //有可能在遇到任何特殊符号之前就EOF了,因此buf中的数据也就没有转换到输出中
output[len++] = buf[--buf_len];

for(int i=0;i<len;i++)
printf(
"%c", output[i]);

return 0;
}

这题目WA了一次test 2,去看了一下DISCUSS,说实在没什么心情自己想原因,心太乱了。

WA的数据就是没有其他字符就直接EOF,原来的程序没想到这一点。想了以后直接AC了。

posted @ 2011-08-07 16:33  DOF_KL  阅读(174)  评论(0编辑  收藏  举报