2013-09-02 3 views
1

У меня есть проект Uni, который требует от нас создания программы Ceaear Cipher, и мы должны сделать это на C. Я изучил Java, но не C, и в результате мне пришлось Изучите C через 4 недели.подстрочное значение не является ни массивом, ни указателем, ни вектором

В любом случае я пытаюсь объединить 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); 

    } 

ответ

0

ошибка происходит потому, что codeAndAlphabet является char:

char codeAndAlphabet; 

Обратите внимание, что это просто одногоchar, а не массив char или указатель на char. Итак, теперь, левая сторона:

codeAndAlphabet[i] = codeWord[i] 

неправильно, потому что он пытается использовать индексацию (или индексирование) синтаксис [i] с чем-то, что не subscriptable, что это именно то, что говорит ваше сообщение об ошибке компилятора ,

Смежные вопросы

 Смежные вопросы