按照你的要求编写的字母加密的C语言程序如下
(姓字母向后移两位,名字母向后移三位)
#includestdio.h
#includestring.h
int main(){
char src[30],result[]="",ch[2]={'\0'};
int i,j,len;
fgets(src,30,stdin);
len=strlen(src);
for(i=0;src[i]!=' ';i++){
if('a'=src[i] src[i]='z'){
ch[0]=(char)(((src[i]-'a')+2)%26+'a');
strcat(result,ch);
}else if('A'=src[i] src[i]='Z'){
ch[0]=(char)(((src[i]-'A')+2)%26+'A');
strcat(result,ch);
}else{
ch[0]=src[i];
strcat(result,ch);
}
}
for(j=i;jlen;j++){
if('a'=src[j] src[j]='z'){
ch[0]=(char)(((src[j]-'a')+3)%26+'a');
strcat(result,ch);
}else if('A'=src[j] src[j]='Z'){
ch[0]=(char)(((src[j]-'A')+3)%26+'A');
strcat(result,ch);
}else{
ch[0]=src[j];
strcat(result,ch);
}
}
printf("%s\n",result);
return 0;
}
#include stdio.h
#include string.h
void main()
{
int i,n;char str[21];
gets(str);n=strlen(str);
if(n==0) printf("error");
for(i=0;in;i++)
if((str[i]'a'||str[i]'z')(str[i]'A'||str[i]'Z'))
printf("error");
else
{
for(i=0;in;i++)
{
if((str[i]='x'str[i]='z')||(str[i]='X'str[i]='Z'))
str[i]-=22;
else str[i]+=4;
printf("%c",str[i]);
}
}
}
a b c d e f g h i j
例子里输入ab,cd
a是第1个字符,那么换成a后面第1个,也就是b
b是第2个字符,那么换成b后面第2个,也就是d
到这里都没错
c是第4个字符,那么换成后面第4个,也就是g,为什么题目示例是h???
#include stdio.h
#include ctype.h
int main()
{
int i=0;
char str[1001];
fgets(str,1000,stdin);
while(str[i]){
if(islower(str[i]))
str[i]=97+(str[i]+i-96)%26;
else if(isupper(str[i]))
str[i]=65+(str[i]+i-64)%26;
i++;
}
puts(str);
return 0;
}