字符的加减ascii码

#include
int main()
{char q[100];
scanf("%s",&q);
int i;
for(int i=1;q[i]!='\0';i++){
if(q[i]>='a'&&q[i]<'z'){q[i]=q[i]+1-32;
}
if(q[i]>='A'&&q[i]<'Z'){q[i]=q[i]+1+32;
}
if(q[i]=='z'){q[i]='A';
}
if(q[i]=='Z'){q[i]='a';
}
}
for(int j=1;j<=i;j++){
printf("%s",q[j]);
}
return 0;
}

变换规则是:将明文中的所有英文字母替换为字母表中的后一个字母,同时将小写字母转换为大写字母,大写字母转换为小写字母。例如,字母a->B、b->C、…、z->A、A->b、B->c、…、Z->a。输入一行字符,将其中的英文字母按照以上规则转换后输出,其他字符按原样输出。

应该怎么修改

修改见注释,供参考:

#include<stdio.h>
int main()
{
    char q[100];
    scanf("%s",q);  //scanf("%s",&q);
    int i;
    for(i=0;q[i]!='\0';i++){  //for(int i=1;q[i]!='\0';i++)
        if(q[i]>='a'&&q[i]<'z'){
            q[i]=q[i]+1-32;
        }
        else if(q[i]>='A'&&q[i]<'Z'){
            q[i]=q[i]+1+32;
        }
        else if(q[i]=='z'){
            q[i]='A';
        }
        else if(q[i]=='Z'){
            q[i]='a';
        }
    }
    for(int j=0;j<i;j++){ //for(int j=1;j<=i;j++)
        printf("%c",q[j]); // printf("%s",q[j]);
    }
    return 0;
}
#include<stdio.h>
int main()
{char q[100];
scanf("%s",&q);
int i;
for(i=0;q[i]!='\0';i++)
{
    if(q[i]>='a'&&q[i]<'z')
    {
        q[i]=q[i]+1-32;
    }
    else if(q[i]>='A'&&q[i]<'Z')
    {
        q[i]=q[i]+1+32;
    }
    if(q[i]=='z')
    {
        q[i]='A';
    }
    else if(q[i]=='Z')
    {
        q[i]='a';
    }
}
for(int j=0;j<i;j++)
{
    printf("%c",q[j]);
}
return 0;
}

转换大小写的代码:


#include<iostream>
#include<cstdio>
#include<string.h>
//#include<algorithm>
//#include<string>
//#include<algorithm>
using namespace std;
string s;
char s1[100];
int main(){
    while(~scanf("%s",s1)){
        for(int i =0;i<strlen(s1);++i){
            s1[i] = toupper(s1[i]);//转换为大写
        }
        printf("%s\n",s1);
        for(int i =0;i<strlen(s1);++i){
            s1[i] = tolower(s1[i]);//转换为小写
        }
        printf("%s\n",s1);
    }
}
看下这篇博客,也许你就懂了,链接:字符转 ASCII 码