c 에서 문자열 처리는 null character 가 필요합니다. '\0' 을 할당해줌으로써 문자열의 끝을 표시하게 됩니다.
메모리를 확보할때에 필요한 문자열 크기 +1 해서 null character 자리르 확보해주고 해당 값을 써주어야 printf 시에 제대로 출력을 하게 됩니다.
result 가 초기화 되지 않았는데, strlen 으로 크기를 재는 것은 올바른 코드가 아니니 다른 방식을 이용하시는게 맞을 듯 하네요.
2675번 - 문자열 반복
#include <cstdio>
#include <string>
#include <iostream>
using namespace std;
int main(void) {
int input_first;
cin >> input_first;
for (int i = 0; i < input_first; i++) {
string result;
int input_max_result;
string mystr;
cin >> input_max_result >> mystr;
result.resize(input_max_result * mystr.size() + 1);
for (int i = 0; i < int(result.size()); i++) {
result[i] = int(mystr[i / input_max_result]);
}
cout << result << '\n';
}
}
코드를 이렇게 고쳤는데도 불구하고 안되네욥.. 알고리즘상 문제가 있는 걸까요
댓글을 작성하려면 로그인해야 합니다.
daisy7024 7년 전
75%에서 자꾸 오답처리가 되네요.
어떠한 부분이 잘못되었는지 조언 부탁드립니다.
제출할 때 scanf_s는 scanf 형식으로 바꾸어서 제출하였습니다.