使用数组将数字解码为字母

时间:2012-04-11 09:15:51

标签: c

对于我的任务,我必须在屏幕上打印数字并将其解码为特定字母。我在这段代码中只使用字母a-l只是为了保持简单,所以我能理解它。

我遇到的问题是,例如,当我输入对应于数组的第一个条目的数字0时,它将取出并打印b-l。

如果我输入数字0,如何将代码仅打印到屏幕上?

#include <stdio.h>

int main()
{
char code[] = "abcdefghijkl";
int i, j, k;
printf("how many letters does your code contain?: ");
scanf("%d", &j);
for(i=0; i<j; ++i){
    printf("enter a number between 0 and 11\n");
    scanf("%d", &k);
    printf("%s\n", &code[k]);
}
}

3 个答案:

答案 0 :(得分:4)

您只打印该位置的字符,因此请更改

printf("%s\n", &code[k]); 

printf("%c\n", code[k]);

您还应该检查您在k中读取的值是&gt; = 0&amp;&amp; &LT; 11,否则你将在其边界之外访问数组。

答案 1 :(得分:0)

%s格式说明符用于打印字符串,您需要使用%c说明符将字符打印到屏幕上。

答案 2 :(得分:0)

printf("%c\n", code[k]);代替printf("%s\n", &code[k]);