[Complete] C에서 문자열 비교 .. 왜 실패하는거죠 ?

Sailor_moon의 이미지

... 생략
	if ( (dp = opendir(infoName)) == NULL ){
		printf(" ERROR !! we can not open the folder ! \n");
	}
 
	while ( (entry = readdir(dp)) != NULL ){		// IF the folder is Not empty ..
              if ( entry->d_name != "." || entry->d_name !="..")
		printf("%s\n", entry->d_name);			// show example 
	}
 
...

대충 위의 내용인데 .... dirent.h 를 사용해서 해당 파일 및 디렉 토리를 읽는데는 성공했습니다만 ,
. , .. 같이 위로 가기 , 상위로 가기 이것들을 배제하기 위해서 , 걸러내려 했는데 ...
걸러내 지지가 않고 다 출력 되는군요 ... 왜 이렇죠 ?

익명 사용자의 이미지

strcmp, strncmp

익명 사용자의 이미지

if (entry->d_name != ".") ==> if (strcmp(entry->d_name, ".") != 0 이렇게..

neocoin의 이미지

아마 C를 처음 배우시나 보네요.
문자열 파트와 포인터 파트 부분을 다시 한번 읽어보세요.

해당 부분을 이해하지 못하면 차후 프로그래밍이 불가능합니다.

Sailor_moon의 이미지

답변주신분들 모두 감사합니다 ^^ 파이썬 처럼 그냥 막 되진 않네요

-------------------------------------------
정의의 이름으로 널 ! 용서하지 않겠다 !!