logo

C++의 문자열

C++ 문자열은 char 배열에 저장된 문자 시퀀스입니다. 문자열은 단어와 텍스트를 저장하는 데 사용됩니다. 또한 숫자 및 기타 유형의 정보와 같은 데이터를 저장하는 데에도 사용됩니다. C++의 문자열은 다음 중 하나를 사용하여 정의할 수 있습니다. 표준::문자열 클래스 아니면 그 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++




mysql 사용자 생성
// 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 클래스