본문 바로가기
알고리즘 문제 풀이

[백준] 명령 프롬프트 - 복습(c++ String)

by pinok1o 2021. 2. 4.

https://www.acmicpc.net/problem/1032

문제 자체는 한명령을 기준으로 잡고 나머지명령과 비교해서 마지막까지 동일한 갯수만 카운트 하였다


#include <iostream>
#include <string.h>

using namespace std;

char filename[51][51];
bool check[51];

int main()
{
    int N;
    cin >> N;
    for (int i = 0; i < N; i++)
        cin >> filename[i];

    for (int i = 0; i < 51; i++)
        check[i] = true;

    for (int i = 0; i < strlen(filename[0]); i++)
    {
        char c = filename[0][i];
        int j;
        for (j = 1; j < N; j++)
            if (filename[j][i] != c) 
                break;
        //for문이 다 돌지 못했으면
        if (j != N)
            check[i] = false;
    }

    for (int i = 0; i < strlen(filename[0]); i++)
    {
        if (check[i] == true)
            cout << filename[0][i];
        else
            cout << "?";
    }cout << endl;
}

 

C++ String 활용

http://www.cplusplus.com/reference/string/string/

string str = "str";
str.assign("str"); //멤버 함수 사용한 할당

string str = new string("str"); //동적 할당

//타입 변환
int i = 10;
string s = std::to_string(i);

string s = "123"
int i = std::stoi(s);

str.size();
str.length(); //길이 (공백포함)

str.empty()
str.clear()

//index
str[0];
str.at(0); str.front(); str.back();
str.substr(5,7); //5~7까지 추출


// '==' '<' 등을 이용한 비교 가능 (아스키 코드 기준)
str.compare(str2);

//str에 str2 0~5 붙이기
str.append(str2, 0, 5)

str.find(stf2) //str2찾아서 index반환

//반복자 활용
string::iterator it;
for(it = str.begin(); it < str.end(); it++){
    cout << *it;
}cout << endl;

str.erase();
str.erase(0,4);

//a에서 b까지 C라는 문자열로
str.replace(a, b, "c");

//c_str()으로 변환
fs.open(str.c_str());
char *strAry = new char[str.length() + 1];
strcpy(strAry , str.c_str());

//char* 함수
strcmp(str1, str2);

'알고리즘 문제 풀이' 카테고리의 다른 글

[백준] 트리 - 복습  (0) 2021.02.05
[백준] 친구 - 복습(플루이드-와샬)  (0) 2021.02.05
[백준] 고층건물 - 복습(hard)  (0) 2021.02.04
[백준] 보물 - 복습  (0) 2021.02.04
[백준] 수열의 합 - 복습  (0) 2021.01.31

댓글