Это незавершенный код для преобразования буквенно-цифровых символов в код Морзе. Пока что только символ «А» установлен. Кажется, я не могу скопировать строку кодов Морса «a» в переменную «c». Компилятор говорит мне, что передающий аргумент 1 из strcpy
делает указатель из целого без литого.Я не могу понять strcpy
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main(){
char c; /* variable to hold character input by user */
char sentence[ 80 ]; /* create char array */
int i = 0; /* initialize counter i */
const char *a = ".- ";
/* prompt user to enter line of text */
puts("Enter a line of text:");
/* use getchar to read each character */
while ((c = getchar()) != '\n') {
c = toupper(c);
switch (c){
case 'A':
strcpy(c, a);
break
}
sentence[ i++ ] = c;
} /* end while */
sentence[ i ] = '\0'; /* terminate string */
/* use puts to display sentence */
puts("\nThe line entered was:");
puts(sentence);
return 0;
}
'getchar' возвращает' int' (а не 'char'), изменение' Int с; 'и' strcpy' хочет 'обугленного *' (а не 'char') в качестве первого аргумента –
Цель вашего' strcpy' as-written - это 'char'. Это должно быть 'char *' Это было бы неправильно с get-go. – WhozCraig
'strcpy' (не strcopy) копирует строку в строку, а не строку для символа. – bolov