1강
문자열의 개념: 글자들의 줄
공식
문자열이란?
문자열(string) 은 글자들이 줄지어 늘어선 데이터입니다. 이름, 단어, 문장 등을
다룰 때 씁니다. 사실상 "문자들의 배열"이라고 생각하면 됩니다.
1. 문자열 만들기와 읽기
#include <string>
string s = "hello";
cin >> s; // 공백 전까지 한 단어 읽기
getline(cin, s); // 공백 포함 한 줄 전체 읽기
s = input() # 한 줄 전체를 문자열로
C++의 cin >> s는 공백에서 끊기므로 한 단어만 읽습니다. 공백이 포함된 문장은
getline을 써야 합니다.
2. 길이 구하기
cout << s.length() << '\n'; // 또는 s.size()
print(len(s))
3. 인덱싱 — 글자 하나 꺼내기
문자열의 각 글자에는 0부터 시작하는 번호(인덱스) 가 붙습니다.
문자열: h e l l o
인덱스: 0 1 2 3 4
cout << s[0] << '\n'; // 'h' (첫 글자)
cout << s[s.size()-1]; // 'o' (마지막 글자)
print(s[0]) # 'h'
print(s[-1]) # 'o' (파이썬은 음수 인덱스로 뒤에서부터)
4. 이어붙이기와 순회
string a = "abc", b = "def";
string c = a + b; // "abcdef"
for (char ch : s) // 글자를 하나씩
cout << ch << ' ';
c = "abc" + "def" # "abcdef"
for ch in s:
print(ch, end=' ')
+로 문자열을 이어 붙일 수 있고, 반복문으로 글자 하나하나를 훑을 수 있습니다.
복잡도
길이 \(N\) 문자열을 한 번 훑는 것은 \(O(N)\)입니다. 다만 C++에서 루프 안에서 s +=로
계속 이어 붙이면 비용이 커질 수 있으니 주의(Bronze에선 대개 괜찮습니다).
정리
- 문자열은 글자들의 줄, 인덱스는 0부터.
- 한 단어는
cin >> s, 한 줄 전체는getline. - 길이는
.size()(C++) /len()(파이썬). +로 이어 붙이고, 반복문으로 글자를 훑는다.