#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了。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

