2017-01-30 1 views
-1

그래서이 코드를 사용하여 문장이 끝나기 전에 문장을 인쇄하려고합니다. 문장 앞에 중단 점이 없으면 프로그램이 일치하고 그런 다음 인쇄해야합니다. 그러나 내 if (k + 1 ...) 문은 항상 건너 뛴 적이 없습니다. 왜 이럴 수 있니? (가) 항상 실행 계속 의미, (이 과제이기 때문에)For 루프 내에서 if 문에 문제 발생

else { 
      cout << "test" << endl; 
      looklen = look.length(); 
      for (j = 0;j < numdist;j++) { 
       for (k = 0;k < looklen;k++) { 
        //cout << "test2" << endl; 
        if (look[k] = '?') { 
         k++; 
         continue; 
        } 
        else if (look[k] != distinct[j][k]) { 
         break; 
        } 
        if (k + 1 == looklen) { 
         cout << "test3" << endl; 
         cout << look << " : matches " << distinct[j] << " " << distinctnum[j]+1 << " time(s)." << endl; 
        } 
       } 

      } 
     } 
+3

당신의 'if (look [k] = '?')'는 대입이 아니라 비교 연산입니다. 아이온 비교하려면'=='를 사용해야합니다. – 1201ProgramAlarm

답변

3
if (look[k] = '?') 

는 항상 참입니다. 당신은 아마

0

= 운영자가

== 연산자 조건부 값을 할당을위한 비교에게 있습니다

if (look[k] == '?') 

을 의미하므로

은 다음과 같이해야합니다 :

if (look[k] == '?')