string 객체에서 size() 번째 이후의 인덱스에 접근하는 것은 undefined behavior입니다. 길이를 넘어서서 접근하지 않게 해보세요.
10798번 - 세로읽기
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string arr[5];
int length = 0;
for(int i=0;i<5;i++)
{
string input;
cin >> input;
arr[i] = input;
length = max(length, (int)arr[i].size());
}
for(int i=0;i<length;i++)
{
for(int j=0;j<5;j++)
{
if(arr[j].size()<=i)
continue;
cout << arr[j][i];
}
}
}
이게 통과 소스이구요
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string arr[5];
int length = 0;
for(int i=0;i<5;i++)
{
string input;
cin >> input;
arr[i] = input;
length = max(length, (int)arr[i].size());
}
for(int i=0;i<length;i++)
{
for(int j=0;j<5;j++)
{
// if(arr[j].size()<i)로해도 저는 공백이 출력이 안되서 한참 해맸내요 ㅠㅠ
if(arr[j].size()<i)
continue;
cout << arr[j][i];
}
}
}
댓글을 작성하려면 로그인해야 합니다.
snujoon 5년 전
string만써도 틀리고
char형 1개씩 배열늘리고 초기화해도 틀리고
뭐가 문제인가요 ㅠㅠ