2013-10-04 2 views
0

지금 당장이 경고를 받고 있는데 이유가 확실하지 않습니다. 경고 메시지를 해당 줄 옆의 코드에 넣었습니다.경고 : 포인터와 정수의 비교, 할당 캐스팅없이 포인터에서 정수를 만드시겠습니까?

void removeNewLine (char * userName, int charLenght) 
{ 
int i=0; 

do { 
    if (userName [i]=='/n') //comparison between pointer and integer 
    { 
     userName [i]='/0'; //assignment makes integer from pointer w/o cast 
    } 
i++; 
} while (i<charLenght); 

} 
+0

배열 이름과 첨자 사이에 공백을 넣지 마십시오 :'userName [i] == '\ n'' 등 (특히 바이너리 연산자'=='주위에 공백을 넣지 않는 경우). 슬래시와 백 슬래시의 오용에 대해 정확히 알았습니다. 그러나 오류 메시지는 나에게 이해가되지 않습니다. ''/ n ''표기법은 이식 가능하지 않지만 (GCC는''경고 : 다중 문자 상수''라고 말한다.) 포인터 값이 아닌 정수 값을 생성한다. 코드를 정확하게 복사하고 붙여 넣으시겠습니까? 또한 null 바이트로 모든 개행 문자를 고칠 필요가있는 경우는 드뭅니다. 일반적으로 첫번째가 충분합니다 ('break;'를 추가하십시오). –

+0

오류 메시지는 물론'userName [i] = "/ 0";'및'username [i] == "/ n"'과 일치합니다. –

답변

5

슬래시가 잘못되었습니다. 개행 문자는 '\n'이고 NULL 문자는 '\0'입니다.

+0

와우! 나는 지금 정말로 바보 같아. 감사합니다. – user2172993

관련 문제