题解 | #字符串加解密#
字符串加解密
http://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a
#include <stdio.h>
#include <ctype.h>
#include <string.h>
void encode(char *ptr)
{
int len = strlen(ptr);
for(int i = 0; i < len; i++)
{
if(isalpha(ptr[i]))
{
if(isupper(ptr[i]))
ptr[i] = tolower(ptr[i]);
else
ptr[i] = toupper(ptr[i]);
if('z' != tolower(ptr[i]))
ptr[i]++;
else
{
if(isupper(ptr[i]))
ptr[i] = 'A';
else
ptr[i] = 'a';
}
}
else if(isdigit(ptr[i]))
{
if('9' != ptr[i])
ptr[i]++;
else
ptr[i] = '0';
}
}
}
void decode(char *ptr)
{
int len = strlen(ptr);
for(int i = 0; i < len; i++)
{
if(isalpha(ptr[i]))
{
if(isupper(ptr[i]))
ptr[i] = tolower(ptr[i]);
else
ptr[i] = toupper(ptr[i]);
if('a' != tolower(ptr[i]))
ptr[i]--;
else
{
if(isupper(ptr[i]))
ptr[i] = 'Z';
else
ptr[i] = 'z';
}
}
else if(isdigit(ptr[i]))
{
if('0' != ptr[i])
ptr[i]--;
else
ptr[i] = '9';
}
}
}
int main(void)
{
int i = 0;
char str[512];
while(gets(str))
{
if(i%2 == 0)
encode(str);
else
decode(str);
i++;
printf("%s\n", str);
}
return 0;
}