对于我的任务,我必须在屏幕上打印数字并将其解码为特定字母。我在这段代码中只使用字母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]);
}
}
答案 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]);