C++ 문자열과 2차원 배열
문자열의 개념
•
문자란 한 글자를 뜻하며, 작은 따옴표('A')로 표현한다.
•
문자열은 하나 이상의 문자가 연속된 묶음이며 큰 따옴표("Hello")로 표현한다.
•
문자열은 반드시 끝에 널문자(\0)가 포함되어야 하며, 컴퓨터는 이 널문자를 통해 문자열의 끝을 판단한다.
문자열 메모리 구조 예시
문자열의 길이를 구하는 함수
문자열의 원리를 이해하면 제일 마지막에 널문자를 활용해 문자열의 길이도 구할 수 있다.
#include <iostream>
char str[256] = "Hello World!!!";
int yaStrLen()
{
for (int i = 0; i < 256; i++)
{
if (str[i] == '\0')
return i;
}
return -1;
}
int main()
{
int len = yaStrLen();
std::cout << "문자열 길이: " << len;
return 0;
}
C++
복사
출력 결과
문자열 길이: 13
Plain Text
복사
2차원 배열과 문자열
•
2차원 배열은 문장(문자열) 여러 개를 저장할 수 있다.
•
행(row)은 각 문장을 나타내고, 열(column)은 각 문장의 문자들을 의미한다.
예제 코드: 여러 문장을 저장하는 2차원 배열
#include <iostream>
int main()
{
char str2D[3][5] =
{
"ABC",
"DEF",
"HIJ"
};
std::cout << str2D[0] << std::endl; // 첫 번째 문장 출력
std::cout << str2D[1] << std::endl; // 두 번째 문장 출력
std::cout << str2D[2] << std::endl; // 세 번째 문장 출력
std::cout << str2D[0][1] << std::endl; // 하나의 문자 출력 (B)
std::cin >> str2D[0]; // 첫 번째 문장에 입력 받기
std::cout << str2D << std::endl; // 주소 출력
return 0;
}
C++
복사
출력 예시
ABC
DEF
HIJ
B
(입력값)
(주소값)
Plain Text
복사
2중 for문과 2차원 배열 활용
•
2차원 배열에 규칙적으로 값을 채우기 위해 중첩 반복문(for문)을 사용한다.
예제 코드: 숫자 채우기
#include <iostream>
int main()
{
int arr[3][3] = { };
int num = 1;
for (int y = 0; y < 3; y++)
{
for (int x = 2 - y; x < 3; x++)
{
arr[y][x] = num;
num++;
}
}
for (int y = 0; y < 3; y++)
{
for (int x = 0; x < 3; x++)
{
std::cout << arr[y][x] << " ";
}
std::cout << std::endl;
}
return 0;
}
C++
복사
출력 결과
0 0 1
0 2 3
4 5 6
Plain Text
복사
“강의는 많은데, 왜 나는 아직도 코드를 못 짤까?”
혼자 공부하다 보면 누구나 이런 고민을 하게 됩니다.
•
강의는 다 들었지만 막상 손이 안 움직이고,
•
복습을 하려 해도 무엇을 다시 봐야 할지 모르겠고,
•
질문할 곳도 없고,
•
유튜브는 결국 정답을 따라 치는 것밖에 안 되는 것 같고.
문제는 ‘연습’이 빠졌기 때문입니다.
단순히 강의를 듣는 것만으로는 실력이 늘지 않습니다.
실제 문제를 풀고, 고민하고, 직접 구현해보는 시간이 반드시 필요합니다.
그래서, 얌얌코딩 코칭은 다릅니다.
그냥 가르치지 않습니다.
스스로 설계하고, 코딩할 수 있게 만듭니다.
얌얌코딩 코칭에서는 단순한 예제가 아닌,
스스로 문제를 분석하고 구현해야 하는 연습문제를 제공합니다.
이 연습문제들은 다음과 같은 역량을 키우기 위해 설계되어 있습니다:
•
문제를 스스로 쪼개고 설계하는 힘
•
다양한 조건을 만족시키는 실제 구현 능력
•
기능 단위가 아닌, 프로그램 단위로 사고하는 습관
•
마침내 자신의 힘으로 코드를 끝까지 작성하는 경험
지금 필요한 건 더 많은 강의가 아닙니다.
코드를 스스로 완성해 나가는 훈련,
그것이 지금 실력을 끌어올릴 가장 현실적인 방법입니다.