我没注意只要小写,我写的是大小写都可以的,另外附送输入验证。
#include
#include
int main()
{
char str[]="00000",str2[]="00000",*p=str,*p2=str2;
printf("输入5个字母:");
while(*p!=0)
{
scanf("%c",p);
if(*p=='\n')
continue;
if(*p<'A'||(*p>'Z'&&*p<'a') || *p>'z') //输入验证,必须是字母
{
printf("只能输入字母,请重新输入\n");
p=str;
p2=str2;
fflush(stdin);//输入有错重新输入前清空缓冲区。fflush属于c扩展函数,正常使用没问题,如需在linux ggc上使用,考虑多次调用getchar函数来清空
}
else
{
*p2=(*p)+4;
if(*p2>90 && *p2<97) //大写字母加4,最大位不超出
*p2='A'+(*p2-90)-1;
if(*p2>122) //小写字母加4,最大位不超出
*p2='a'+(*p2-122)-1;
p2++;
p++;
}
}
printf("原字符串为:%s\n加密后的字符串为:%s\n",str,str2);
return 0;
}
c语言本身是不能加密字符的,但你可以写一个加密程序来加密。
为叙述方便,不妨设这个程序为jm。
给定一个字符串s,加密后的串为jm(s),我们称之为密文,原串为明文。
只要有这么一个jm程序,就可以实现加密字符。
相对应的还有解密。
P.S.常用的加密方法有循环字符串法、密钥加密法
/*
*
*给China加密,让每个字母后面第个字母替换原有的字母。即C变为G。
*
*/
#include
int main(void)
{
int i;
int j=0;
char buf1[1024]={"china"};
char buf2[1024];
for(i=0;buf1[i]!=0;i++){
buf2[j]=buf1[i]+4;
j++;
}
for(i=0;buf2[i]!=0;i++){
putchar(buf2[i]); //字符数组的输出
}
putchar('\n');
}
这个程序希望对你有用,我没输入字符,直接固定的字符.
望你采纳!
#include
encode(char * s)
{
char * x = s;
if (!x) return;
while(*x) {
(*x) += (char)2;
x++;
}
}
main()
{
char a[80];
scanf("%s", a);
encode(a);
printf(a);
}
#include
int main(void)
{
char a[5];
int i=0;
for(;i<5;i++)
scanf("%c",&a[i]);
for(i=0;i<5;i++)
printf("%c",a[i]+4);
return 0;
}
如以后还有类似问题欢迎加我QQ咨询