이 플래그는 c 명령 인수에서 문자열로 처리됩니까? [폐쇄]

이 플래그는 c 명령 인수에서 문자열로 처리됩니까? [폐쇄]

다음과 같은 것이 있다고 가정해 보겠습니다.

#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]){
    if (argv[1] == "-s") {
        printf("success\n");
    }
    else{
        printf("failed\n");
    }

return 0;
}

셸에서 실행 파일을 실행하면 인쇄됩니다 failed...

답변1

이는 실제 내용이 아닌 기본 주소를 비교하기 때문에 C에서 ==문자열 비교에 또는 를 사용할 수 없기 때문입니다. !=C에서 문자열을 제대로 비교하려면 strcmp.

답변2

짧은 대답은 '그렇다'입니다.

가장 큰 실수는STRCMP또는STRNCMPC에서 문자열을 올바르게 비교합니다.

보너스 포인트:반복 argv[]하고 printfShow Each Element를 사용하여 무엇이 어디에 배치되어 있는지 직접 확인하세요.

관련 정보