EDIT : 분명히 pigLatin 메서드의 시작 부분에 char * first를 선언하고 메서드의 뒷부분에서 & word [counter]로 초기화해야했습니다. 왜이 사람이 누군지 압니까? Visual Studio 2010을 사용하고 있습니다.문자 배열의 첫 번째 문자를 가리키는 포인터?
왜 컴파일 타임 오류가 발생하는지 파악하는 데 문제가 있습니다. 문제의 코드 :
#include <stdio.h>
#include <string.h>
#include <conio.h>
char *pigLatin(char *word)
{
if (word[0] == 'a' || word[0] == 'e' || word[0] == 'i'
|| word[0] == 'o' || word[0] == 'u')
{
char yay[] = "yay";
strcat(word, yay);
return word;
}
else
{
int length = strlen(word);
int counter = 0;
char addOn[] = "";
char remainder[] = "";
char yay[] = "yay";
printf("%s", yay);
char *first = &word[counter];
printf("%c", *first); // error is here, don't know why it doesn't print
return word;
}
}
int main()
{
char hello[] = "hello";
pigLatin(hello);
printf("%s", hello);
getch();
return (0);
}
1> ------ 빌드 시작 : 프로젝트 : Program_One, 구성 : 릴리스는 Win32 ------
1> programone.c
1> programone.c (12) : 경고 C4996 : 'strcat':이 함수 또는 변수가 안전하지 않을 수 있습니다. strcat_s를 대신 사용해보십시오. 지원 중단을 사용하지 않으려면 _CRT_SECURE_NO_WARNINGS를 사용하십시오. 자세한 내용은 온라인 도움말을 참조하십시오.
1> programone.c (24) : 오류 C2143 : 구문 오류 : ';'이 (가) 없습니다. 오류 C2065 : 첫 '선언되지 않은 식별자
1> programone.c (25) : 오류 C2100'타입 '
1> programone.c (25) 전에 불법적 간접
== ======== 빌드 : 0 성공, 1 실패, 0 최신, 0 건너 뛰기 ==========
왜 내 포인터가 첫 번째 배열 "hello"의 문자가 올바르게 인쇄되지 않습니다.
미리 감사드립니다.
,이 컴파일되지 않습니다 (또는 적어도 경고 메시지를 얻어야한다) 것을 발견한다. –
'& word [counter]'가 아니어야합니까? – BeemerGuy
@OliCharlesworth : 그게 내가 얻은 것입니다. 특정 오류는 다음과 같습니다. 1> programone.c (23) : 오류 C2143 : 구문 오류 : ';'이 (가) 없습니다. '형식'전에 1> programone.c (24) : 오류 C2065 : '첫 번째': 선언되지 않은 식별자 1> programone.c (24) : 오류 C2100 : 불법 인디 케이션 – kkSlider