목차
string 자료형
문자열 연결
문자열 추가
숫자와 문자열
문자열 길이
문자열 문자 접근
문자열 문자 변경
사용자 입력
namespace 생략
string 자료형
'문자열' 저장에 사용하는 자료형 .
1.
string (문자열) 자료형 데이터는 큰따옴표("") 로 묶음.
cf.
char (단일문자) 자료형 데이터는 작은따옴표('')로 묶음.
2.
상단에 <string> 라이브러리 헤더 파일 추가해야 문자열 사용 가능.
cf.
char(단일문자) 자료형은 바로 사용 가능.
[참고]
문자열은 객체 임. 따라서, 다양한 작업 위한 메서드 가짐.
(예) string1 .append(string2 )
[예제]
#include <iostream>
#include <string>
using namespace std;
int main() {
string hz = "Homzzang.com";
cout << hz;
return 0;
}
결과값: Homzzang.com
문자열 연결
+ 연산자 사용.
(예) string1 + string2
※ append() 메서드 이용 방식보다 느리나 사용은 더 간편.
[예제1] 단순 연결.
#include <iostream>
#include <string>
using namespace std;
int main () {
string ko = "홈짱닷컴 ";
string en = "Homzzang.com";
string hz = ko + en;
cout << hz;
return 0;
}
결과값: 홈짱닷컴 Homzzang.com
[예제2] 공백 추가 후 연결.
#include <iostream>
#include <string>
using namespace std;
int main () {
string ko = "홈짱닷컴";
string en = "Homzzang.com";
string hz = ko + " " + en;
cout << hz;
return 0;
}
결과값: 홈짱닷컴 Homzzang.com
문자열 추가
string 객체의 append() 메서드 이용.
(예) string1 .append( string2 )
※ + 연산자 방식보다 훨씬 빠르나, + 연산자보다 사용 불편.
[예제]
#include <iostream>
#include <string>
using namespace std;
int main () {
string ko = "홈짱닷컴 ";
string en = "Homzzang.com";
string hz = ko.append(en);
cout << hz;
return 0;
}
숫자와 문자열
+ 연산자는 '덧셈'과 '문자열 연결' 모두에 사용 가능.
① (숫자 + 숫자) 경우, 덧셈 연산.
② (문자열 + 문자열) 경우, 문자열 연결.
단, (숫자 + 문자열) 경우, 에러 발생.
[예제1] 숫자 + 숫자 경우, '덧셈' 연산
#include <iostream>
using namespace std;
int main () {
int x = 3;
int y = 4;
int z = x + y; // 7
cout << z;
return 0;
}
결과값: 7
[예제2] 문자열 + 문자열 경우, 문자열 연결.
#include <iostream>
#include <string>
using namespace std;
int main () {
string x = "3";
string y = "4";
string z = x + y; // 34
cout << z;
return 0;
}
결과값: 34
[예제3] 문자열 + 숫자 경우, 에러 발생.
#include <iostream>
#include <string>
using namespace std;
int main () {
string x = "3";
int y = 4;
string z = x + y; // 에러 유발.
cout << z;
return 0;
}
결과값: 에러 발생.
문자열 길이
length() 함수나 size() 함수 이용.
※ size() 함수는 length() 함수의 별칭.
※ 편한 걸로 사용.
[예제1] length() 함수
#include <iostream>
#include <string>
using namespace std;
int main() {
string hz = "Homzzang.com";
cout << hz.length(); //12
return 0;
}
결과값: 12
[예제2] size() 함수
#include <iostream>
#include <string>
using namespace std;
int main() {
string hz = "Homzzang.com";
cout << hz.size(); // 12
return 0;
}
결과값: 12
문자열 문자 접근
string [index ] 방식으로 접근 가능.
※ index 는 0부터 시작.
(예) 첫 글자: 0, 두 번째 글자: 1 ...
[예제1] 첫 번째 글자 출력.
#include <iostream>
#include <string>
using namespace std;
int main() {
string hz = "Homzzang.com";
cout << hz[0]; // H
return 0;
}
결과값: H
[예제2] 마지막 글자 출력.
#include <iostream>
#include <string>
using namespace std;
int main() {
string hz = "Homzzang.com";
cout << hz[hz.size()-1]; // m
return 0;
}
결과값: m
문자열 문자 변경
string [ index ] = ' new_value ' ;
※ 주의:
값은 반드시 작은따옴표로 묶어야 함.
만약, 큰따옴표로 묶으면 에러 발생함.
[예제] 첫 번째 글자를 h → H 변경.
#include <iostream>
#include <string>
using namespace std;
int main() {
string hz = "homzzang.com";
hz[0] = 'H';
cout << hz;
return 0;
}
결과값: Homzzang.com
사용자 입력
[방법1] cin >> 이용.
※ 주의: 띄어쓰기 된 경우, 오직 맨 앞의 것만 입력받음.
cin >> var ;
※ cin : 입력스트림.
※ >> : 입력스트림을 var 변수에 담는 역할.
※ var : 입력 내용을 담을 변수.
#include <iostream>
#include <string>
using namespace std;
int main() {
string name;
cout << "이름 입력: ";
cin >> name;
cout << "이름: " << name;
return 0;
}
결과값: "홍 길동" 입력 시, "홍"만 찍힘.
[방법2] getline() 함수 이용. ★★
※ 띄어쓰기 되더라도 정상적으로 모두 입력 받음.
getline(cin, var );
※ cin : 입력스트림.
※ string : 입력 내용을 담을 변수.
(예제)
#include <iostream>
#include <string>
using namespace std;
int main() {
string name;
cout << "이름 입력: ";
getline (cin, name);
cout << "이름: " << name;
return 0;
}
결과값: "홍 길동" 입력 시, "홍 길동" 찍힘.
namespace 생략
using namespace std;
위 '표준 네임스페이스 라이브리러' 생략 시,
변수나 입출력스트림 앞에 std:: 붙여야 함.
※ 라이브러리 생략 여부는 본인 맘.
※ 라이브러리 추가한 채, std:: 붙여도 에러 발생 X
[예제] 라이브러리 생략한 경우.
#include <iostream>
#include <string>
int main() {
std::string hz = "Homzzang.com";
std::cout << hz;
return 0;
}
[예제] 라이브러리 추가한 경우.
#include <iostream>
#include <string>
using namespace std;
int main() {
string hz = "Homzzang.com";
cout << hz;
return 0;
}
주소 복사
랜덤 이동
최신댓글