我正在为我的学习做一些字符串研讨会。有一个问题,你要求用户输入让我们说" 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码并将其转换为字母?或者有更好的方法吗
答案 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)。