사용자가 입력 한 문자열이 asdfgh\hj
이라고 가정하고 문자열에서 \
문자의 색인을 찾고 싶습니다. C에서 어떻게 할 수 있습니까?C에서 문자열에서 ''문자를 찾는 방법은 무엇입니까?
strchr()
의 기능을 시도했지만 strchr("asdfgh\hj",'\')
으로 컴파일러에서 오류가 발생했습니다.
그럼 나는 ==
연산자를 사용했지만 동일한 문제가 발생했습니다. 다시 컴파일러에서 오류가 발생합니다.
사용자가 입력 한 문자열이 asdfgh\hj
이라고 가정하고 문자열에서 \
문자의 색인을 찾고 싶습니다. C에서 어떻게 할 수 있습니까?C에서 문자열에서 ''문자를 찾는 방법은 무엇입니까?
strchr()
의 기능을 시도했지만 strchr("asdfgh\hj",'\')
으로 컴파일러에서 오류가 발생했습니다.
그럼 나는 ==
연산자를 사용했지만 동일한 문제가 발생했습니다. 다시 컴파일러에서 오류가 발생합니다.
나는
strchr("asdfgh\hj",'\')
로strchr()
기능을 시도했지만 컴파일러에서 오류 올바른 함수의
가 발생합니다! 오류가 발생하는 이유는 \
이 특별한 "이스케이프"문자이기 때문입니다. 개행 문자 "\n
"과 같이 "특수한"인쇄 할 수없는 문자를 정의하는 데 사용됩니다.
strchr("asdfgh\\hj",'\\')
이 시도 :
strchr("asdfgh\\hj",'\\')
잘못된 경우 : 건초 더미가 이스케이프해야합니다. –
@DavidGiven 죄송합니다. 고침, 고맙습니다 :) – Agis
C 표준은 말한다, C11 6.4.4.4 :
그래서 대신이중 따옴표
"
와 물음표?
그 자체로 하나 표현할 수있는이 같은 탈출해야\
백 슬래시 자체가 이유입니다 또는 각각 이스케이프 시퀀스\"
및\?
으로 표시해야하지만 작은 따옴표'
과 백 슬래시\
은 각각 이스케이프 시퀀스으로 표시해야합니다210 및\\
.
strchr("asdfgh\\hj",'\\')
를 사용합니다.
C에서 백 슬래시는 \n
과 같은 하드 타이핑 된 문자에 사용됩니다. 그래서 당신은 \
자체에 대한 \\
를 작성해야합니다 : 문자열에 당신이 \
또한 그렇지 않으면 의미가 없습니다 \h
으로 간주됩니다 \\
를 writen해야 할 것으로
char *backslash = strch("some text containing \\ ...", '\\');
참고.
Bro이 문자열은 런타임에 사용자가 입력합니다. 그는 "asdfgh \ hj"라고 입력했다고 가정합니다. 그러면 어떻게 "asdfgh \\ hj"로 바꿀 수 있습니까? @dasblinkenlight – ranaarjun
@ranaarjun 사용자가 문자열을 입력 한 경우 아무 것도 변경할 필요가 없습니다. 슬래시는 컴파일러에서만 이스케이프해야합니다. 따라서'strchr (userString, '\\')'을 호출하면 정확한 위치에 대한 포인터를 얻을 수 있습니다. – dasblinkenlight
@ranaarjun 컴파일러에서 오류가 발생했습니다. 문자열이 사용자에 의해 입력되면 오류는 아마도 이스 케이 핑과 관련 될 수 없습니다. 따라서 원래 게시물을기만하는 것뿐만 아니라 실제로 발생한 오류를 표시해야합니다. –