• 회원가입
  • 로그인
  • 구글아이디로 로그인

[basic] C++ - String (문자열)

3,093  
목차
  1. string 자료형
  2. 문자열 연결
  3. 문자열 추가
  4. 숫자와 문자열
  5. 문자열 길이
  6. 문자열 문자 접근
  7. 문자열 문자 변경
  8. 사용자 입력
  9. 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;

}

 



분류 제목
basic C++ - Home (입문) - 추천 링크
basic C++ - Intro (소개) - 용도・특징
basic C++ - Start (시작) - Code::Blocks (코드 블럭스) 설치/실행/세팅. ※ 한글 깨짐 해…
basic C++ - Syntax (구문)
basic C++ - Output (출력)
basic C++ - New Lines (줄바꿈)
basic C++ - Comment (주석)
basic C++ - Variable (변수) ★ ※ 상수
basic C++ - User Input (사용자 입력)
basic C++ - Data Type (데이터 타입) - 자료형
basic C++ - Operator (연산자)
basic C++ - String (문자열)
basic C++ - Math (수학)
basic C++ - Boolean (참거짓)
basic C++ - If ... Else - (이프 조건문) ★
basic C++ - Switch (스위치 조건문) ★
basic C++ - While Loop (와일 반복문) ★
basic C++ - For Loop (포 반복문) ★
basic C++ - Break/Continue (브레이크/컨티뉴) 키워드 ★ - 반복문 빠져나가기 / 특정 조건 건너…
basic C++ - Arrays (배열)
1/2
목록
찾아주셔서 감사합니다. Since 2012