黑马程序员技术交流社区
标题:
对输入的英文字母进行加密
[打印本页]
作者:
EchoWill
时间:
2014-4-28 10:59
标题:
对输入的英文字母进行加密
本帖最后由 EchoWill 于 2014-4-28 19:19 编辑
#include <stdio.h>
#include <string.h>
int main(int argc, const char * argv[])
{
char str[1024] = {},s[1024] = {}; //定义字符串str以输入,字符串s以输出
printf("请输入需要加密的字符串:\n");
scanf("%s",str);
// 字符串的初始下标
int i = 0, j = 0;
// 循环遍历字符串中的所有字符,直到'\0'为止
while (str[i]) {
// 当字符是26个英文字母的大小写一位时,进行替换
if ((str[i] >= 'a' && str[i] <= 'z')||(str[i] >= 'A' && str[i] <= 'Z'))
{
// 字符串在a~w或A~W之间,用其后的三个字母替换该字母
if ((str[i] >= 'a' && str[i] <= 'w')||(str[i] >= 'A' && str[i] <= 'W'))
{
// 循环替换字母
for (int k = 1; k < 4; k++)
{
s[j] = str[i] + k;
j++;
}
}
else if (str[i] == 'x'|str[i] =='X') //当末尾字母为x或X时,以相同字母替换最后一位
{
// 循环替换字母
for (int k = 1; k < 3; k++)
{
s[j] = str[i] + k;
j++;
}
s[j]=str[i]+2;
j++;
}
else if (str[i] == 'y'|str[i] =='Y') //当末尾字母为y或Y时,以相同字母替换最后两位
{
// 循环替换字母
for (int k = 1; k < 4; k++)
{
s[j] = str[i] + 1;
j++;
}
}
else //当字母为z或Z时,以相同字母替换之
{
// 循环替换字母
for (int k = 1; k < 4; k++)
{
s[j] = str[i];
j++;
}
}
}
else // 非英文字母直接略过
{
s[j]=str[i];
j++;
}
i++;
}
printf("加密后的字符串:%s\n",s);
return 0;
}
复制代码
为什么输出结果有system.lib?
作者:
兰闻天
时间:
2014-4-28 11:38
本帖最后由 兰闻天 于 2014-4-28 11:41 编辑
#include <stdio.h>
#include <string.h>
int main(int argc, const char * argv[])
{
char str[1024]={},s[1024]={}; //定义字符串str以输入,字符串s以输出,这里需要把初始化一下,要不里面的东西都是未定义的,不知道那个字节里有什么;
printf("请输入需要加密的字符串:\n");
scanf("%s",str);
// 字符串的初始下标
int i = 0, j = 0;
// 循环遍历字符串中的所有字符,直到'\0'为止
while (str) {
// 当字符是26个英文字母的大小写一位时,进行替换
if ((str >= 'a' && str <= 'z')||(str >= 'A' && str <= 'Z'))
{
// 字符串在a~w或A~W之间,用其后的三个字母替换该字母
if ((str >= 'a' && str <= 'w')||(str >= 'A' && str <= 'W'))
{
// 循环替换字母
for (int k = 1; k < 4; k++)
{
s[j] = str[ i ] + k;
j++;
}
}
else if (str == 'x'|str =='X') //当末尾字母为x或X时,以相同字母替换最后一位
{
// 循环替换字母
for (int k = 1; k < 3; k++)
{
s[j] = str[ i ] + k;
j++;
}
s[j]=str[ i ] +2;
j++;
}
else if (str == 'y'|str =='Y') //当末尾字母为y或Y时,以相同字母替换最后两位
{
// 循环替换字母
for (int k = 1; k < 4; k++)
{
s[j] = str[ i ] + 1;
j++;
}
}
else //当字母为z或Z时,以相同字母替换之
{
// 循环替换字母
for (int k = 1; k < 4; k++)
{
s[j] = str[ i ] ;
j++;
}
}
}
else // 非英文字母直接略过
{
s[j]=str[ i ] ;
j++;
}
i++;
}
printf("加密后的字符串:%s\n",s);
return 0;
}
作者:
胡铭
时间:
2014-4-28 11:53
本帖最后由 胡铭 于 2014-4-28 11:54 编辑
楼上说的对- -
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2