我有一个Uni项目,要求我们创建一个Ceaear Cipher程序,我们必须在C中完成。我已经学习了Java而不是C,因此我必须在4周内学习C语言。
无论如何,我试图在第二个for循环中将2个char数组合在一起然后在代码字之后添加字母表,当我尝试这样做时它会一直给我错误,我已经将此主题发布为“下标值既不是数组也不是指针,也不是矢量”。我可以用Java轻松完成这项工作,但对我来说C稍微复杂一点。
是否只有一种更简单的方法可以做到这一点,或者我错过了所有的东西。任何帮助表示赞赏。
int main(){
char mainAlphabet;
char *mainPointer = &mainAlphabet;
char codeWord[20];
char codeAndAlphabet;
int i=0;
printf("Please enter a code word: ");
scanf("%s", &codeWord);
for(mainAlphabet=97 ; mainAlphabet<=122 ; mainAlphabet++){
//printf("%c", mainAlphabet);
}
for(i=0 ; i < sizeof(codeWord); i++){
codeAndAlphabet[i] = codeWord[i];
}
printf("%s \n", codeWord);
}
答案 0 :(得分:0)
发生错误是因为codeAndAlphabet
是char
:
char codeAndAlphabet;
请注意,它只是一个单 char
,而不是char
的数组或指向char
的指针。那么,现在,左边是:
codeAndAlphabet[i] = codeWord[i]
是错误的,因为它试图将下标(或索引)语法[i]
用于不可订阅的内容,这正是编译器错误消息所说的。