-3
나는 몇개의 문자열을 입력하고 문자열의 길이를 비교하기 위해 코드를 작성한 다음 더 짧은 문자열을 콘솔 출력에 인쇄합니다. 그러나 코드가 예상대로 작동하지 않고 입력을 받으면 빈 화면이 출력됩니다 (문자열이 표시되지 않음). 아무도 내가 뭘 잘못하고 있다고 말할 수 있습니까?코드가 예상대로 작동하지 않는 이유는 무엇입니까?
input
배열은 사용자가 제공하는 문자열을 갖고, 라인 (string[i] == a[j]
)이 a
의 특정 값에 대해 참으로 실행되도록 이러한 문자열은 a
도 존재한다.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
long n, m;
cin >> n >> m;
char a[m][10], b[m][10]; // will print the shorter out of these two
for (long i = 0; i < m; i++) cin >> a[i] >> b[i];
char input[n][10];
for (long i = 0; i < n; i++) cin >> input[i];
for (long i = 0; i < n; i++)
{
for (long j = 0; j < m; j++)
{
if (input[i] == a[j]) // checks which set of a,b does this input correspond to
{
if (strlen(a[j]) > strlen(b[j])) cout << b[j];
else cout << a[j];
if (i < n - 1) cout << " ";
}
}
}
}
코드 (input[i] == a[j]
)에 문제가있는 것 같지만 잘 모르겠습니다.
input[i] == a[j]
그것은 두 포인터 아닌 문자열을 비교한다
이것은 C++ 질문으로 태그 되었기 때문에'std :: string'을 사용하지 않는 이유가 무엇입니까? – Adam27X
귀하의 제목이 "투표 종료"이유 중 하나와 정확히 일치합니다 .... – ravi
.. 왜냐하면 당신은 그것을 디버깅하지 않았기 때문입니다. 디버깅을했다면, 당신이 발견 한 것을 우리에게 말했을 것입니다, 그렇죠? –