관리 메뉴

사적공간

문자열 배열에서 입력한 문자열과 비교하여 입력한 문자열의 개수만큼 ox 표시 하기[dat 미숙] 본문

KNOU_CS/C++

문자열 배열에서 입력한 문자열과 비교하여 입력한 문자열의 개수만큼 ox 표시 하기[dat 미숙]

2sac 2024. 9. 30. 18:27
#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main() {
    // 1. vect 배열에 "MINCODING" 하드코딩
    string vect = "MINCODING";

    // 2. DAT 선언 (128 크기, 아스키 문자를 커버)
    int DAT[128] = { 0 };  // 아스키 코드 사용, 알파벳 대소문자 포함

    // 3. vect 배열에 존재하는 문자들을 DAT에 기록
    for (int i = 0; i < vect.length(); i++) {
        DAT[vect[i]] = 1;  // 해당 문자가 vect에 있음을 표시
    }

    // 4. 찾을 문자의 개수 n과 n개의 문자 입력받기
    int n;
    cout << "Enter the number of characters to find: ";
    cin >> n;

    vector<char> characters(n);  // n개의 문자 배열을 동적 할당
    cout << "Enter the characters to search, separated by spaces: ";
    for (int i = 0; i < n; i++) {
        cin >> characters[i];
    }

    // 5. 문자 존재 여부 확인 및 출력
    for (int i = 0; i < n; i++) {
        if (DAT[characters[i]] == 1) {
            cout << 'O';  // 존재하면 O 출력
        }
        else {
            cout << 'X';  // 없으면 X 출력
        }
    }
    cout << endl;

    return 0;
}

 

1. dat[비교 대상 A]++; 
2. if(dat[비교자 B] == 1) ~~~ 

익숙해질 때까지 연습 

#include <iostream>
#include <cstring>

using namespace std;


int main() {
    char vect[10] = "MINCODING";
    
    int n;
    cin >> n;
    char arr[10]; 
    for (int i = 0; i < n; i++) {  // 이렇게 해야 n만큼 문자를 입력받으면서 스페이스바로 띄어서 입력가능함. 
        cin >> arr[i];
    }

    int dat[100] = { 0 };
    for (int i = 0; i < 10; i++) {
        dat[vect[i]] = 1; 
    }

    for (int i = 0; i < n; i++) {
        if (dat[arr[i]] == 1) cout << "O";
        else cout << "X"; 
    }



    return 0;
}