C++의 문자열
C++ 문자열은 char 배열에 저장된 문자 시퀀스입니다. 문자열은 단어와 텍스트를 저장하는 데 사용됩니다. 또한 숫자 및 기타 유형의 정보와 같은 데이터를 저장하는 데에도 사용됩니다. C++의 문자열은 다음 중 하나를 사용하여 정의할 수 있습니다. 표준::문자열 클래스 아니면 그 C 스타일 문자 배열.
1. C 스타일 문자열
이 문자열은 다음으로 끝나는 일반 문자 배열로 저장됩니다. 널 문자 ' ' . C++가 C 언어에서 상속받은 문자열 유형입니다.
통사론:
char str[] = 'techcodeview.com';
예:
C++
// C++ Program to demonstrate strings> #include> using> namespace> std;> int> main()> {> > char> s[] => 'techcodeview.com'> ;> > cout < < s < < endl;> > return> 0;> }> |
산출
techcodeview.com
2. std::string 클래스
이는 헤더 파일 내부에 정의된 std::string 클래스로 C++에 도입된 새로운 유형의 문자열입니다. 이는 동적 크기, 멤버 함수 등과 같은 기존 C 스타일 문자열에 비해 많은 이점을 제공합니다.
통사론:
std::string str('techcodeview.com'); 예:
C++
// C++ program to create std::string objects> #include> using> namespace> std;> int> main()> {> > string str(> 'techcodeview.com'> );> > cout < < str;> > return> 0;> }> |
산출
techcodeview.com
또 다른 방법은 동일한 문자가 계속해서 반복되는 문자열을 만드는 것입니다.
통사론:
std::string str(number,character);
예:
C++
#include> using> namespace> std;> int> main()> {> > string str(5,> 'g'> );> > cout < < str;> > return> 0;> }> |
산출:
ggggg
C++에서 문자열을 정의하는 방법
C++에서는 문자열을 여러 가지 방법으로 정의할 수 있습니다. 문자열 클래스를 사용하여 표준 라이브러리에서 문자열에 액세스할 수 있습니다. 문자 배열을 사용하여 문자열을 정의할 수도 있습니다. String은 일반적으로 사용되는 방법인 검색, 조작 등 다양한 기능을 제공합니다. 이 방법은 문자열 클래스보다 덜 발전되었음에도 불구하고 더 효율적이고 사용하기 쉽기 때문에 여전히 널리 사용됩니다. C++에서 문자열을 정의하는 방법은 다음과 같습니다.
- 문자열 키워드 사용
- C 스타일 문자열 사용
1. 문자열 키워드 사용
array 키워드를 사용하는 것보다 string 키워드를 사용하여 문자열을 정의하는 것이 쓰기 쉽고 이해하기 쉽기 때문에 더 편리합니다.
통사론:
string s = 'techcodeview.com'; string s('techcodeview.com'); 예:
C++
// C++ Program to demonstrate use of string keyword> #include> using> namespace> std;> int> main()> {> > string s => 'techcodeview.com'> ;> > string str(> 'techcodeview.com'> );> > cout < <> 's = '> < < s < < endl;> > cout < <> 'str = '> < < str < < endl;> > return> 0;> }> |
산출
s = techcodeview.com str = techcodeview.com
2. C 스타일 문자열 사용
strcpy(), strcmp() 및 strcat()와 같은 C 스타일 문자열 라이브러리 함수를 사용하여 문자열을 정의합니다. 이 방법은 더 복잡하고 다른 두 가지 방법만큼 널리 사용되지는 않지만 레거시 코드를 처리하거나 성능이 필요할 때 유용할 수 있습니다.
char s[] = {'g', 'f', 'g', ' '}; char s[4] = {'g', 'f', 'g', ' '}; char s[4] = 'gfg'; char s[] = 'gfg'; 예:
C++
// C++ Program to demonstrate C-style string declaration> #include> using> namespace> std;> int> main()> {> > char> s1[] = {> 'g'> ,> 'f'> ,> 'g'> ,> ' '> };> > char> s2[4] = {> 'g'> ,> 'f'> ,> 'g'> ,> ' '> };> > char> s3[4] => 'gfg'> ;> > char> s4[] => 'gfg'> ;> > cout < <> 's1 = '> < < s1 < < endl;> > cout < <> 's2 = '> < < s2 < < endl;> > cout < <> 's3 = '> < < s3 < < endl;> > cout < <> 's4 = '> < < s4 < < endl;> > return> 0;> }> |
산출
s1 = gfg s2 = gfg s3 = gfg s4 = gfg
C 스타일 문자열의 또 다른 예:
C++
#include> using> namespace> std;> int> main()> {> > string S => 'Geeeks for Geeks'> ;> > cout < <> 'Your string is= '> ;> > cout < < S < < endl;> > return> 0;> }> |
산출
Your string is= Geeeks for Geeks
C++에서 문자열 입력을 받는 방법
문자열 입력은 사용자로부터 문자열을 받아들이는 것을 의미합니다. C++에서. 문자열에 따라 사용자로부터 입력을 받는 다양한 유형이 있습니다. 가장 일반적인 방법은 다음을 사용하여 입력을 받는 것입니다. 식사 C++에서 추출 연산자(>>)를 사용하는 키워드입니다. 문자열을 입력으로 사용하는 방법은 다음과 같습니다.
- 식사
- getline
- 문자열 스트림
1. Cin 사용하기
문자열 입력을 받는 가장 간단한 방법은 다음을 사용하는 것입니다. 식사 스트림 추출 연산자(>>)와 함께 명령을 사용합니다.
통사론:
cin>>s;
예:
C++
// C++ Program to demonstrate string input using cin> #include> using> namespace> std;> int> main() {> > string s;> > > cout < <> 'Enter String'> < cin>>s; 시합 < <'String is: ' < return 0; }> |
산출
Enter String String is:
산출:
Enter String techcodeview.com String is: techcodeview.com
2. getline 사용
그만큼 C++의 getline() 함수 입력 스트림에서 문자열을 읽는 데 사용됩니다. 헤더파일에 선언되어 있습니다.
통사론:
getline(cin,s);
예:
C++
// C++ Program to demonstrate use of getline function> #include> using> namespace> std;> int> main()> {> > string s;> > cout < <> 'Enter String'> < < endl;> > getline(cin, s);> > cout < <> 'String is: '> < < s < < endl;> > return> 0;> }> |
산출
Enter String String is:
산출:
Enter String techcodeview.com String is: techcodeview.com
3. 스트링스트림 사용
그만큼 stringstream 클래스 C++는 한 번에 여러 문자열을 입력으로 사용하는 데 사용됩니다.
통사론:
stringstream stringstream_object(string_name);
예:
C++
// C++ Program to demonstrate use of stringstream object> #include> #include> #include> using> namespace> std;> int> main()> {> > string s => ' techcodeview.com to the Moon '> ;> > stringstream obj(s);> > // string to store words individually> > string temp;> > //>> 연산자는 stringstream 개체에서 읽습니다.> > while> (obj>> 온도) {> > cout < < temp < < endl;> > }> > return> 0;> }> |
산출
techcodeview.com to the Moon
문자열을 함수에 전달하는 방법?
배열을 함수에 전달하는 것과 같은 방식으로 C++의 문자열은 문자 배열로 함수에 전달될 수 있습니다. 다음은 예제 프로그램입니다:
예:
C++
// C++ Program to print string using function> #include> using> namespace> std;> void> print_string(string s)> {> > cout < <> 'Passed String is: '> < < s < < endl;> > return> ;> }> int> main()> {> > string s => 'techcodeview.com'> ;> > print_string(s);> > return> 0;> }> |
산출
Passed String is: techcodeview.com
포인터와 문자열
C++의 포인터는 주소를 기호로 표현한 것입니다. 이를 통해 프로그램은 참조별 호출을 시뮬레이션하고 동적 데이터 구조를 생성 및 조작할 수 있습니다. 포인터를 사용하면 문자열의 시작 주소인 문자열의 첫 번째 문자를 얻을 수 있습니다. 아래와 같이 포인터를 통해 주어진 문자열에 접근하고 인쇄할 수 있습니다.
예:
C++
// C++ Program to print string using pointers> #include> using> namespace> std;> int> main()> {> > string s => 'Geeksforgeeks'> ;> > // pointer variable declared to store the starting> > // address of the string> > char> * p = &s[0];> > // this loop will execute and print the character till> > // the character value is null this loop will execute and> > // print the characters> > while> (*p !=> ' '> ) {> > cout < < *p;> > p++;> > }> > cout < < endl;> > return> 0;> }> |
산출
Geeksforgeeks
C++에서 문자열과 문자 배열의 차이점
문자열과 문자 배열의 주요 차이점은 문자열은 변경할 수 없지만 문자 배열은 변경할 수 없다는 것입니다.
| 끈 | 문자 배열 |
|---|---|
| 문자열은 문자열 스트림으로 표현될 수 있는 개체를 정의합니다. | 널 문자는 문자 배열을 종료합니다. |
| 문자열은 객체로 표시되므로 문자열에서 배열 붕괴가 발생하지 않습니다. | 위협 배열 붕괴 문자 배열의 경우 존재합니다. |
| 문자열 클래스는 문자열을 조작하기 위한 다양한 함수를 제공합니다. | 문자 배열은 문자열을 조작하는 내장 함수를 제공하지 않습니다. |
| 메모리는 동적으로 할당됩니다. | 문자 배열의 크기는 정적으로 할당되어야 합니다. |
에 대해 더 많이 알아보세요. C++에서 문자열과 문자 배열의 차이점
C++ 문자열 함수
C++에서는 문자열 복사 및 연결을 위한 strcpy() 및 strcat() 함수와 같이 문자열 조작에 사용되는 일부 내장 함수를 제공합니다. 그 중 일부는 다음과 같습니다:
| 기능 | 설명 |
|---|---|
| 길이() | 이 함수는 문자열의 길이를 반환합니다. |
| 교환() | 이 함수는 두 문자열의 값을 교환하는 데 사용됩니다. |
| 크기() | 문자열의 크기를 찾는 데 사용됩니다. |
| 크기 조정() | 이 함수는 문자열의 길이를 주어진 문자 수만큼 조정하는 데 사용됩니다. |
| 찾다() | 매개변수에 전달된 문자열을 찾는 데 사용됩니다. |
| push_back() | 이 함수는 전달된 문자를 문자열 끝에 푸시하는 데 사용됩니다. |
| 팝백() | 이 함수는 문자열에서 마지막 문자를 팝하는 데 사용됩니다. |
| 분명한() | 이 함수는 문자열의 모든 요소를 제거하는 데 사용됩니다. |
| strncmp() | 이 함수는 전달된 두 문자열의 최대 처음 num 바이트를 비교합니다. |
| strncpy() | 이 함수는 최대 n바이트의 src가 복사된다는 점을 제외하면 strcpy() 함수와 유사합니다. |
| strrchr() | 이 함수는 문자열에서 마지막으로 나타나는 문자를 찾습니다. |
| 깨진() | 이 함수는 소스 문자열의 복사본을 대상 문자열의 끝에 추가합니다. |
| 찾다() | 이 함수는 문자열 내의 특정 부분 문자열을 검색하고 부분 문자열의 첫 번째 문자 위치를 반환하는 데 사용됩니다. |
| 바꾸다() | 이 함수는 이전 값과 동일한 [첫 번째, 마지막) 범위의 각 요소를 새 값으로 바꾸는 데 사용됩니다. |
| 하위 문자열() | 이 함수는 주어진 문자열에서 하위 문자열을 만드는 데 사용됩니다. |
| 비교하다() | 이 함수는 두 문자열을 비교하고 결과를 정수 형식으로 반환하는 데 사용됩니다. |
| 삭제() | 이 함수는 문자열의 특정 부분을 제거하는 데 사용됩니다. |
C++ 문자열 반복자 함수
C++에 내장된 문자열 반복자 함수는 프로그래머에게 문자열 요소를 쉽게 수정하고 탐색할 수 있는 방법을 제공합니다. 이러한 기능은 다음과 같습니다.
| 기능 | 설명 |
|---|---|
| 시작하다() | 이 함수는 문자열의 시작 부분을 가리키는 반복자를 반환합니다. |
| 끝() | 이 함수는 문자열의 끝을 가리키는 반복자를 반환합니다. |
| 찾기() | 이 함수는 문자열의 마지막 발생을 찾는 데 사용됩니다. |
| rbegin() | 이 함수는 문자열의 끝을 가리키는 역방향 반복자를 반환합니다. |
| 세우다() | 이 함수는 문자열의 시작 부분을 가리키는 역방향 반복자를 반환합니다. |
| cbegin() | 이 함수는 문자열의 시작 부분을 가리키는 const_iterator를 반환합니다. |
| 몇() | 이 함수는 문자열의 끝을 가리키는 const_iterator를 반환합니다. |
| 크르비긴() | 이 함수는 문자열의 끝을 가리키는 const_reverse_iterator를 반환합니다. |
| 신조() | 이 함수는 문자열의 시작 부분을 가리키는 const_reverse_iterator를 반환합니다. |
예:
C++
// C++ Program to demonstrate string iterator functions> #include> using> namespace> std;> int> main()> {> > // declaring an iterator> > string::iterator itr;> > // declaring a reverse iterator> > string::reverse_iterator rit;> > string s => 'techcodeview.com'> ;> > itr = s.begin();> > > cout < <> 'Pointing to the start of the string: '> < < *itr < < endl;> > itr = s.end() - 1;> > cout < <> 'Pointing to the end of the string: '> < < *itr < < endl;> > rit = s.rbegin();> > cout < <> 'Pointing to the last character of the string: '> < < *rit < < endl;> > rit = s.rend() - 1;> > cout < <> 'Pointing to the first character of the string: '> < < *rit < < endl;> > return> 0;> }> |
산출
Pointing to the start of the string: G Pointing to the end of the string: s Pointing to the last character of the string: s Pointing to the first character of the string: G
문자열 용량 함수
C++에서는 문자열 용량 함수를 사용하여 문자열 크기와 용량을 관리합니다. 용량의 주요 기능은 다음과 같습니다.
| 기능 | 설명 |
|---|---|
| 길이() | 이 함수는 문자열의 크기를 반환하는 데 사용됩니다. |
| 용량() | 이 함수는 컴파일러가 문자열에 할당한 용량을 반환합니다. |
| 크기 조정() | 이 함수를 사용하면 문자열 크기를 늘리거나 줄일 수 있습니다. |
| Shrink_to_fit() | 이 기능은 용량을 줄여 최소값과 동일하게 만듭니다. |
예:
C++
#include> using> namespace> std;> int> main()> {> > string s => 'techcodeview.com'> ;> > > // length function is used to print the length of the string> > cout < <> 'The length of the string is '> < < s.length() < < endl;> > > // capacity function is used to print the capacity of the string> > cout < <> 'The capacity of string is '> < < s.capacity() < < endl;> > > // the string.resize() function is used to resize the string to 10 characters> > s.resize(10);> > > cout < <> 'The string after using resize function is '> < < s < < endl;> > > s.resize(20);> > > cout < <> 'The capacity of string before using shrink_to_fit function is '> < < s.capacity() < < endl;> > > // shrink to fit function is used to reduce the capacity of the container> > s.shrink_to_fit();> > cout < <> 'The capacity of string after using shrink_to_fit function is '> < < s.capacity() < < endl;> > return> 0;> }> |
산출
The length of the string is 13 The capacity of string is 15 The string after using resize function is GeeksforGe The capacity of string before using shrink_to_fit function is 30 The capacity of string...
결론적으로 이 기사에서는 문자 배열과 문자열 클래스를 사용하여 C++에서 문자열을 정의하는 방법을 설명합니다. 문자열 클래스는 고급 기능을 제공하는 반면 문자 배열은 기본 기능을 제공하지만 효율적이고 사용하기 쉽습니다. 이 기사에서는 사용자로부터 입력을 받는 다양한 방법에 대해서도 논의했습니다.
std::string 클래스에 대한 자세한 내용은 다음 기사를 참조하세요. C++의 std::string 클래스