69,371
社区成员
发帖
与我相关
我的任务
分享
//写了一个手动解析的.(最后那个数是反着输出的)
//只要把我的输出输入到一个字符串缓冲区里,再用sscanf就能读了..
//注意要把反的倒过来...
#include <stdio.h>
#include <ctype.h>
void parse(const char* str)
{
if (isdigit(str[0]) || str[0] == '.')
{
const char* t;
while (*str != ' ') putchar(*str++);
t = ++str;
while (*t) ++t;
--t;printf(" ");
while (*t != ' ') putchar(*t--);printf(" ");
for (; str != t; ++str) putchar(*str);
}
else
{
const char* t;
while (*str != ' ') ++str;
++str;
while (*str != ' ') putchar(*str++);
++str;
while (*str != ' ') ++str;
t = ++str;
while (*t) ++t;
--t;printf(" ");
while (*t != ' ') putchar(*t--);
--t;printf(" ");
while (*t != ' ') --t;
for (; str != t; ++str) putchar(*str);
}
puts("");
}
int main()
{
parse("stuno 123 stuname abc stusa 99.99");
parse("stuno 124 stuname a c stusa 99");
parse("stuno 125 stuname a x stusa 88");
parse("123 abc 99.99");
parse("124 a c 99");
return 0;
}