#defineMAXCHARS1000
//decode?char
char?decode(char?ch);
//decode?string
void?decodes(char?*?s,?int?length);
//fill?zero
void?zero(char?*?s,?int?length);
int?main(void)
{
char?str[MAXCHARS],?ch;
int?count?=?0;
zero(str,?MAXCHARS);
while?((ch?=?getchar())?!=?EOF)?{
str[count++]?=?ch;
if?('\n'?==?ch?||?MAXCHARS?==?count)?{
count?=?0;
decodes(str,?MAXCHARS);
printf("%s\n",?str);
zero(str,?MAXCHARS);
}
}
return?0;
}
char?decode(char?ch)
{
if?(ch?>=?'A'?&&?ch?<=?'W')?{
ch?=?ch?+?3;
}?else?if?(ch?>=?'X'?&&?ch?<=?'Z')?{
ch?=?ch?-?26?+?3;
}?else?{
ch?=?ch;
}
return?ch;
}
void?decodes(char?*?s,?int?length)
{
char?*?t;
for?(int?i=0;?i<length;?i++)?{
*(s?+?i)?=?decode(*(s+i));
}
}
void?zero(char?*?s,?int?length)
{
for?(int?i=0;?i<length;?i++)?{
s[i]?=?0;
}
} Result Like This:
抱歉,看錯,下面是java版:
/** *?Main.java */import?java.util.Scanner;
public?class?Main?{
public?Main()?{}
public?static?void?main(String[]?args)?{
Scanner?reader?=?new?Scanner(System.in);
while?(reader.hasNext())?{
String?s?=?sc.next();
s?=?Main.decodes(s);
System.out.println(s);
}
}
public?static?char?decode(char?ch)?{
int?ich?=?ch;
if?(ich?>=?'A'?&&?ich?<=?'W')?{
ich?+=?3;
}?else?if?(ich?>=?'X'?&&?ich?<=?'Z')?{
ich?+=?(3-26);
}
return?(char)?ich;
}
public?static?String?decodes(String?str)?{
StringBuffer?sb?=?new?StringBuffer(str);
for?(int?i=0;?i<str.length();?i++)?{
sb.setCharAt(i,?Main.decode(sb.charAt(i)));
}
str?=?sb.toString();
return?str;
}
}
The Result Is:
以上兩個例子都是在Linux下編譯運行,Ctrl+D即可結束運行。