下标值既不是数组也不是指针也不是向量

时间:2013-09-02 23:37:50

标签: arrays char

我有一个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);

  }

1 个答案:

答案 0 :(得分:0)

发生错误是因为codeAndAlphabetchar

char codeAndAlphabet;

请注意,它只是一个 char,而不是char的数组或指向char的指针。那么,现在,左边是:

codeAndAlphabet[i] = codeWord[i]

是错误的,因为它试图将下标(或索引)语法[i]用于不可订阅的内容,这正是编译器错误消息所说的。