c语言文件加密,用后三个字母代替

编程实现对键盘输入的英文名句子进行加密。用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,若为其它字符时不变。比如245a95n加密后是245bcd... 编程实现对键盘输入的英文名句子进行加密。用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,若为其它字符时不变。比如245a95n加密后是245bcd95opq。(C语言) 展开
 我来答
牛牛牛不牛0720
2014-12-29 · TA获得超过342个赞
知道小有建树答主
回答量:367
采纳率:0%
帮助的人:345万
展开全部
#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()

这是我小号V5
2014-12-29 · TA获得超过186个赞
知道小有建树答主
回答量:141
采纳率:50%
帮助的人:88.2万
展开全部
#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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式