-----------------------------------------------------------------
먼저 중복문자열이라는 텍스트파일에는 아래와 같은 내용이 들어있구요.
21 18
SAQLANGUAGEOFCOMPUTER
SOFTWAREPROGRAMING
저 위에문자열과 아래문자열을 비교해서 중복이 되는 문자열을 구하고(2자 이상)
중복되는 문자열의 개수를 나타내는 예제입니다.
모범답안은 OF NG 2 라고 나와야 하네요.
string 헤더파일에 있는 string 함수를 이용하지 않고 코드를 작성해봤는데
아무리봐도 답이 안나오는 이유를 모르겠네요. 도와주세요!
string 함수를 사용하는 방법을 알려주셔도 좋습니다!!
--------------------------------------------------------------------
#include
#include
#include
using namespace std;
int main()
{
int a, b, count = 0, temp = 0;
int min;
int total = 0;
ifstream fin;
fin.open("중복문자열.txt");
fin >> a >> b;
char *arr1 = new char[a];
char *arr2 = new char[b];
for (int i = 0; i < a; i++)
{
fin >> arr1[i];
}
for (int i = 0; i < b; i++)
{
fin >> arr2[i];
}
for (int i = 0; i < a; i++)
{
for (int j = 0; j < b; j++)
{
if (arr1[i] == arr2[j])
{
min = 0;
if (a - i - 1 > b - j - 1)
{
min = b - j - 1;
}
else
{
min = a - i - 1;
}
for (int k = 0; k <= min; k++)
{
if (arr1[i+k] == arr2[j+k])
{
count++;
temp++;
}
else
{
temp++;
}
if (temp > count)
{
if (count > 1)
{
for (int l = 0; l < count; l++)
{
cout << arr1[i + l];
}
cout << " ";
total++;
temp = 0, count = 0;
break;
}
else
{
temp = 0, count = 0;
break;
}
}
}
}
}
}
cout << endl;
cout << total <
|