s2와 s1을 비교하는 코드입니다. 동일하면 0과 다른 옵션을 반환하지만 while 루프는 종료 할 수없고 문제를 찾을 수 없습니다. 내가 char * s2를 const char * s2로 변환하면 잘 작동한다는 것을 알 수 있습니다.Char *와 While 루프가 서로 작동하지 않습니다
#include <iostream>
using namespace std;
int cmp(char*,char*);
int main()
{
char* s1;
cout << "Please Enter First Word: "; cin >> s1;
char* s2;
cout << "Please Enter Second Word: "; cin >> s2;
cout << "The Result is: " << cmp(s1,s2) << endl;
return 0;
}
int cmp(char* s1, char* s2)
{
int i=0;
while (*(s2+i)!=0)
{
if (*(s2+i)>*(s1+i)) return 1;
if (*(s2+i)<*(s1+i)) return -1;
i++;
}
return 0;
}
왜'strcmp'를 표준으로 사용하고'cmp'와 동등하지 않습니까? 그리고'std :: string'도'compare'를 가지고 있습니다 ... –
현명한 값으로 초기화하기 전에's1'과's2'를 사용하고 있습니다. –
이것은 아마도 C 및 C++ 코드에서 볼 수있는 가장 일반적인 실수 일 것입니다. 불행히도 문제가 무엇인지 아직 모르는 경우 검색하기가 어렵습니다. –