通过用c语言减去ASCII码来改变char

时间:2016-12-04 21:57:48

标签: c ascii

我正在为我的学习做一些字符串研讨会。有一个问题,你要求用户输入让我们说" bob"并且代码是降低其ASCII代码,使其成为" ana"。我不知道如何去做这件事。会不会像

那样
int main() {
    char str[10];
    char test[10];
    int i;

    printf("Enter a string: ");
    scanf("%s", str);

    while(str[i]!='\0') {
       test[i]=str[i]; i++;
    }
}

如果我要打印它,它只给我ASCII码而不是与之相关的字母。我如何获取ASCII码并将其转换为字母?或者有更好的方法吗

2 个答案:

答案 0 :(得分:2)

你想:

test[i] = orig[i] - 1;
  

如果我要打印它,它只给我ASCII码

这只是意味着你没有正确打印它。这应该有效:

printf("orig: %s, transformed: %s\n", orig, test);

答案 1 :(得分:1)

在C中,char是整数类型。没有必要在代码和字母之间进行转换:字母是代码。例如,在ASCII系统'a' == 97上。

换句话说,您可以直接执行str[i]--;(假设您的平台使用ASCII)。