题目1105:字符串的反码
简化后的源代码:
遇到的问题:此题输入的字符串中可能含有空格,所以不能用scanf, C++中不能用cin。改用gets(); 之前由于一直用scanf而出错。
源代码:
#include <stdio.h>
#include <string.h>
int
main(){
char
str[100];
int
i,j,k,len;
char
ch;
while
(1){
gets
(str);
if
(
strcmp
(str,
"!"
)==0)
break
;
len=
strlen
(str);
for
(i=0;i<len;i++){
if
(str[i]<=
'z'
&&str[i]>=
'a'
){
ch=
'a'
;
while
(ch<=
'z'
){
if
(str[i]-
'a'
==
'z'
-ch){
str[i]=ch;
break
;
}
ch++;
}
}
else
if
(str[i]<=
'Z'
&&str[i]>=
'A'
){
ch=
'A'
;
while
(ch<=
'Z'
){
if
(str[i]-
'A'
==
'Z'
-ch){
str[i]=ch;
break
;
}
ch++;
}
}
else
{
str[i]=str[i];
}
}
for
(i=0;i<len;i++)
printf
(
"%c"
,str[i]);
printf
(
"\n"
);
}
return
0;
}
/**************************************************************
Problem: 1105
User: kaoyandaren123
Language: C
Result: Accepted
Time:0 ms
Memory:912 kb
****************************************************************/
#include <string.h>
int
main(){
char
str[100];
int
i,j,k,len;
char
ch;
while
(
gets
(str)){
if
(
strcmp
(str,
"!"
)==0)
break
;
len=
strlen
(str);
for
(i=0;i<len;i++){
if
(str[i]<=
'z'
&&str[i]>=
'a'
){
printf
(
"%c"
,
'a'
+
'z'
-str[i]);
}
else
if
(str[i]<=
'Z'
&&str[i]>=
'A'
){
printf
(
"%c"
,
'A'
+
'Z'
-str[i]);
}
else
{
printf
(
"%c"
,str[i]);
}
}
printf
(
"\n"
);
}
return
0;
}
/**************************************************************
Problem: 1105
User: kaoyandaren123
Language: C
Result: Accepted
Time:0 ms
Memory:912 kb
****************************************************************/