1

我有一个 Uni 项目,需要我们创建一个 Ceaear Cipher 程序,我们必须用 C 来完成。我学过 Java,但没有学过 C,因此我不得不在 4 周内学会 C。

无论如何,我试图在第二个 for 循环中将 2 个字符数组组合在一起,然后在代码字之后添加字母,当我尝试这样做时,它一直给我错误,我已将此主题发布为“下标值既不是数组也不是指针也不是向量”。我可以在 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);

  }
4

1 回答 1

0

发生错误是因为codeAndAlphabetchar

char codeAndAlphabet;

请注意,它只是一个 char而不是数组char或指向char. 所以,现在,左边:

codeAndAlphabet[i] = codeWord[i]

是错误的,因为它试图将下标(或索引)语法[i]与不可下标的东西一起使用,这正是您的编译器错误消息所说的。

于 2013-09-02T23:50:30.433 回答