c语言文件加密,用后三个字母代替
编程实现对键盘输入的英文名句子进行加密。用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,若为其它字符时不变。比如245a95n加密后是245bcd...
编程实现对键盘输入的英文名句子进行加密。用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,若为其它字符时不变。比如245a95n加密后是245bcd95opq。(C语言)
展开
2个回答
展开全部
#include <stdio.h>
#include <string.h>
//默认输入字母和数字,对其余非法字符未判断
int main(void)
{
char buf[100] = {0};
char result[100] = {0};
int length = 0;
scanf("%s",buf);
length = strlen(buf);
int i=0,j=0;
for(i=0;i<length;i++)
{
if(buf[i] <= '9' && buf[i] >= '0')
result[j++] = buf[i];
else{
result[j++] = buf[i] + 1;
result[j++] = buf[i] + 2;
result[j++] = buf[i] + 3;
}
}
printf("%s\n",result);
}
追问
Xcode 不能使用strlen语句 能不能换一个
追答
那你可以使用这个自定义的函数:
int str_len(char buf[])
{
int i= 0;
while(buf[i++] != '\0') ;
return i-1;
}
在调用strlen()函数的地方换成str_len()
展开全部
#include<stdio.h>
#include<string.h>
int main()
{
char s[200];
printf("请输入要加密的英文句子:");
scanf("%s",s);
int length=strlen(s);
int i,j;
for(i=0;i<length;i++)
{
if(s[i]>='a'&&s[i]<='z')
{
for(j=1;j<=3;j++)
printf("%c",(s[i]+j>'z')?(s[i]+j-26):(s[i]+j));
//如果转换后的字符超出了字母,回到第一个字母a
}
else if(s[i]>='A'&&s[i]<='Z')
{
for(j=1;j<=3;j++)
printf("%c",(s[i]+j>'Z')?(s[i]+j-26):(s[i]+j));
}
else printf("%c",s[i]);
}
return 0;
}
追问
int length=strlen(s);
为什么这行代码会报错
后面显示using long to int
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询