티스토리 뷰
2.4 C++ 문자열 처리
(1)C-스트링으로 문자열 다루기
- strcmp(), strlen(), strcpy() 등
- strcmp() : 배열을 이용해 입력받을 시 사용하는 문자열 비교 함수
* 사용할 헤더파일
#include<cstring>
.....
int n = strlen("Hello");
* c-스트링 예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 |
#include<iostream>
#include<cstring>
int main() {
using namespace std;
char password1[10];
char password2[10];
cout << "새 암호를 입력하세요.>>";
cin >> password1;
cout << "새 암호를 입력하세요.>>";
cin >> password2;
if (strcmp(password1, password2) == 0)//"password1 == password2" 로는 안됨.
cout << "같습니다.\n";
else
cout << "같지 않습니다.\n";
} |
cs |
(2)string 클래스로 문자열 다루기
* string 클래스
- C++ 표준 클래스
- 문자열 크기 제약이 없다.
*string 클래스가 스스로 문자열 크기게 맞게 내부 버퍼 조절
- #include<string> 헤더파일을 포함하여야 한다.
- getline() : string 타입의 문자열을 입력 받기 위해 제공되는 전역 함수
* 사용할 헤더파일
#include<string.h>
...
* string 클래스 예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 |
#include<iostream>
#include<string>
using namespace std;
int main() {
string song("Falling in love with you");// 문자열 song
string elvis("Elvis Presley");// 문자열 elvis
string singer; // 문자열 singer
cout << song + "를 부른 가수는"; //+ 로 문자열 연결
cout << "(힌트: 첫 글자는 " << elvis[0] << ")?"; // []연산자 사용
getline(cin,singer);//문자열 입력
if (singer == elvis)//문자열 비교
cout << "맞았습니다." << endl;
else
cout << "틀렸습니다. 정답은 " + elvis + "입니다." << endl;
} |
cs |
* C++ 공백이 있는 문자열 처리 예제 (주소를 입력받는 문자열 예제)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 |
#include<iostream>
#include<string>
using namespace std;
int main() {
//주소를 입력 받는 문자열 예제
cout << "주소를 입력하세요 : " << endl;
char address[100];
cin >> address;
cout << "입력한 주소는 \"" << address << "\""<< endl;
return 0;
} |
cs |
- 위의 코드(line 10)로는 공백을 받을 시 입력이 제대로 이루어지지 않는다.
* 공백도 입력을 받는 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 |
#include<iostream>
#include<string>
using namespace std;
int main() {
//주소를 입력 받는 문자열 예제
cout << "주소를 입력하세요 : " << endl;
char address[100];
cin.getline(address, 100, '\n');
cout << "입력한 주소는 \"" << address << "\""<< endl;
return 0;
} |
cs |
- line 11에서 getline() 함수를 이용해 엔터(\n)를 입력할 때 까지 문자열을 받도록 코드를 작성한다.
* geline() 사용 형식
cin.getlin(char buf[], int size, char delimitChar)
- buf는 문자열을 저장할 배열, size는 buf[] 배열의 크기, delimitChar은 문자열의 끝을 지정하는 구분 문자를 의미한다.
'객체 지향 프로그래밍 > 이론 정리' 카테고리의 다른 글
[C++]객체 포인터, 객체 배열,동적 메모리 할당 (0) | 2017.10.11 |
---|---|
[C++]접근지정자, 인라인 함수, 구조체, 파일분리 (0) | 2017.09.27 |
[C++]기본생성자 예제, 생성자의 특징, 소멸자 (0) | 2017.09.21 |
[C++]클래스와 객체, 생성자 (1) | 2017.09.20 |
2. C++ 프로그래밍의 기본 (0) | 2017.09.07 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 백준 11501
- 파이썬 클래스
- 파이썬 예제
- 파이썬 객체
- css
- 버츄어박스
- 파이썬 선택문
- 파이썬 if문
- 파이썬 함수
- 웹
- css 그리드
- 파이썬 단계적 개선
- 자바스크립트 그래프
- 파이썬 터틀
- 파이썬 while
- 파이썬 진수 변환
- 백준 1874
- 파이썬 연산자
- 파이썬 for
- 자바 에센셜 실습문제
- 파이썬 리스트
- 백준
- 파이썬 문자열
- 자바
- 명품 c++ 실습
- css 박스
- 파이썬
- 백준 10451
- 자료구조
- 자바스크립트 자료구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함