"멀리 할 수 있음) 나는 stricmp에 널을 통과 틀리지 않는 정의되지 않은 동작
입니다, 무엇을 복사하다 CMD2에와에 캡 감도없이 비교 다음 newCommand에 넣어 : "코드가 이런 짓을하면
, 그것은 그 자체로 cmd2
의 전 내용을 비교하는 것 그것을하지 않을까요?
copy cmd2 -> newCommand
is cmd2 == newCommand?
이 "newCommand"로, 다음 루프의 첫 번째 반복에 복사 "열기"것 "열기"를 입력하고 더 - 이상 문자열 "새로운"어디서든 프로그램이없는 것입니다 사용자.
strstr
은 첫 번째 문자열에서 두 번째 문자열을 검색합니다.
strstr("hello world", "world"); // returns pointer to 'world' in 'hello world'
strstr("biscuit", "new"); // returns NULL to indicate new doesn't occur in 'biscuit'
은 확실히 당신이 실제로하고 싶은 것은 단순히 :
if (stricmp(newCommand, cmd2) == 0) {
// match
}
덧붙여, 당신은 는 "newCommand"로 "CMD2"당신이 strcpy(destinationStr, sourceStr)
을 사용할 것을 복사 할 않은 경우;
strcpy(newCommand, cmd2);
[학생에게 편지 열기] (http://meta.programmers.stackexchange.com/q/6166/64132) 유용 할 수 있습니다. –
std :: string을 사용하는 것이 금지되어 있습니까? 그것이 허용된다면 코드는 훨씬 더 간단 해집니다. –
@KateGregory 대소 문자를 구별하지 않고 비교할 것을 제외하고는 :) – kfsone