이것은 영숫자를 모스 코드로 변환하는 미완성 코드이다. 지금까지 문자 "A"만 설정되어 있습니다. 변수 "c"에 "a"의 모스 코드 문자열을 복사 할 수 없습니다. 컴파일러는 인수 1을 strcpy
으로 전달하면 캐스팅하지 않고 정수에서 포인터를 만듭니다. a
이 문자열 동안나는 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;
}
''int' (안'char')를 반환 getchar', INT의 C '로 변경 다음은 맨 페이지에서 서명입니다 'char')을 첫 번째 인수로 사용합니다. –
작성된 strcpy의 대상은'char'입니다. 그것은'char *'일 필요가 있습니다. – WhozCraig
'strcpy' (strcopy가 아님)은 문자열을 문자열로 복사하고 문자열을 char로 복사하지 않습니다. – bolov