strings c with examples
C ++에서 문자열의 기초를 집중적으로 살펴 봅니다.
이 C ++ 시리즈에서는 지금까지 대부분 C ++의 숫자 배열에 대해 설명했습니다. 이 튜토리얼에서는 단순히 '문자열'이라고 부르는 문자 배열을 사용한 조작에 대해 설명합니다.
문자 배열은 대부분 C ++에서 지원하는 C 스타일 문자열입니다. C 스타일 문자 배열 외에도 C ++는 문자열 클래스 'std :: string'을 지원합니다. 또한이 자습서에서는 문자열 유형과 그 차이점 및 C ++에서 각 유형을 프로그래밍하는 방법에 대해 설명합니다.
=> 이 시리즈의 전체 C ++ 자습서 목록을 확인하십시오.
학습 내용 :
문자형 배열 (C 스타일 문자열)
c 스타일 문자열은 널 문자 ' 0'으로 끝나는 문자 배열입니다. 따라서 우리는 char 유형의 배열과 배열의 차원 또는 크기를 정의한 다음 문자열 또는 문자 배열로 초기화 할 수 있습니다.
null 문자로 문자열을 종료하는 것은 컴파일러이므로 문자열 (큰 따옴표 ''로 묶음)으로 문자 배열을 초기화하면 배열 크기를 선언하는 동안 null 문자를위한 추가 공간을 남겨야합니다. .
문자 배열을 선언하고 초기화하는 몇 가지 예를 살펴 보겠습니다.
char firstStr() = 'This is Cstyle string'; char secStr(100) = {'s','o','f','t','w','a','r','e',' ','t','e','s','t','i','n','g',' ','h','e','l','p',' '}; char thirdStr() = {'h','e','l','l','o',' '};
위의 모든 정의는 C ++에서 유효한 C 스타일 문자열 정의입니다. 실제 크기를 선언하거나 컴파일러가 초기화 한 문자열에 따라 크기를 수용 할 수 있도록 크기를 비워 둘 수 있습니다.
취합시다 예 C ++에서 문자 배열 읽기 및 쓰기
다음은 cin을 사용하여 문자열을 읽고 cout을 사용하여 출력하는 간단한 프로그램입니다.
#include #include using namespace std; int main() { char firstStr(100); cin>>firstStr; cout<<'you entered : '< 출력 1 :
SoftwareTestingHelp.com
입력 : SoftwareTestingHelp.com
출력 2 :
이것은 C 스타일 문자열입니다
입력 :이
두 출력을 비교하면 첫 번째 문자열 'SoftwareTestingHelp.com'을 입력했을 때 그대로 인쇄되었음을 알 수 있습니다.
그러나 두 번째 출력에서는 문자열을 'This is C-style string'으로 입력했지만 출력은 'This'뿐이었습니다.
출력의 차이는 문자열을 읽는 데 사용되는 cin의‘>>’연산자가 공백이있을 때까지만 읽는 C의‘scanf’함수로 취급되기 때문입니다. 따라서 'cin with >>'는 공백없이 문자 배열을 읽는 데 적합합니다.
따라서 두 번째 출력 공간이 발견되는 동안 cin 함수는이를 문자열의 끝으로 가져와 첫 번째 단어 만 읽습니다.
공백을 포함한 전체 문자 행을 읽기 위해 C ++는 'get'함수를 사용합니다.
get 함수를 사용하는 예제 프로그램은 다음과 같습니다.
#include #include using namespace std; int main() { char firstStr(100); cin.get(firstStr,100); cout<<'you entered : '< 산출:
안드로이드를위한 최고의 무료 mp3 음악 다운로더
이것은 softwareTestinghelp.com입니다.
입력 : 이것은 softwareTestinghelp.com입니다.
예와 같이 , cin의 get 함수는 두 개의 인수를 사용합니다. 첫 번째 인수는 문자열을 읽을 문자 배열 변수이고 두 번째 인수는 배열의 최대 크기입니다.
C 스타일 문자열은 또한 사용자가 문자열을 조작 할 수있는 다양한 문자열 함수를 지원합니다. 이러한 함수는 'cstring'헤더에 정의되어 있습니다.
아래에 C 스타일 문자열을 조작하는 데 사용할 수있는 다양한 문자열 함수를 나열한 표가 있습니다.
하지 마라 함수 인수 기술 1 strcpy s1, s2 문자열 s2를 문자열 s1에 복사합니다. 두 strcat s1, s2 문자열 s1의 끝에 문자열 s2를 추가하거나 연결합니다. 삼 strlen s1 문자열 s1의 길이를 반환합니다. 4 strcmp s1, s2 0 반환 : s1과 s2가 동일합니다.
<0:s1 > 0 : s1> s2 5 strchr s1, ch 문자열 s1에서 문자 ch의 첫 번째 발생에 대한 포인터와 그 이후의 문자열을 반환합니다. 6 strstr s1, s2 문자열 s1에서 문자열 s2의 첫 번째 발생을 반환합니다.
다음 프로그램은 C ++에서 이러한 함수 중 일부의 사용법을 보여줍니다.
#include #include using namespace std; int main() { char firstStr(50) = 'This is softwareTestingHelp.com'; char secStr(50) = 'a testing platform'; int len = strlen(firstStr); cout<<'Length of firstStr : '< 산출:
firstStr의 길이 : 31
결과 문자열 (secStr) : softwareTesting
firstStr과 secStr 비교 : -31
연결된 secStr : 소프트웨어 테스트
firststr에서 i의 첫 번째 발생 : s는 softwareTestingHelp.com입니다.
C ++의 문자열 클래스
'std :: string'클래스에 의해 정의 된 C ++의 문자열은 개체에 대한 문자 스트림의 표현입니다. 즉, String 클래스는 문자열 개체의 모음입니다. 이 문자열 클래스는 std 네임 스페이스의 일부이며 'string.h'헤더에 정의되어 있습니다.
문자열 클래스와 문자 배열의 기본적인 차이점에 대해 살펴 보겠습니다.
- 위에서 논의한 문자 배열은 컴파일 시간 동안 정적으로 할당되지만 문자열은 객체이므로 동적으로 할당 될 수 있습니다.
- 문자 배열은 본질적으로 정적이기 때문에 일단 정의되면 축소하거나 확장 할 수 없습니다. 따라서 크기가 100 인 문자 배열이 있고 'Hello'라는 단어로 초기화하면 나머지 공간이 낭비됩니다.
Char mystr (100) =“안녕하세요”;
여기서 나머지 95 개 위치는 낭비됩니다.
이와 반대로 문자열 객체는 본질적으로 동적이며 값에 대한 정확한 공간을 차지합니다.
- 문자 배열은 성능이 더 빠르지 만 문자열은 느립니다.
- 문자 배열에는 조작 할 수있는 함수가 거의 없습니다. String 클래스에는 반복기 함수를 포함하여 많은 함수가 있습니다.
이것들은 문자 배열과 문자열 객체 클래스의 기본적인 차이점 중 일부입니다.
다음으로 문자열 클래스의 객체에 대해 수행되는 몇 가지 기본 작업과 함께 문자열 클래스의 몇 가지 예를 살펴 보겠습니다.
문자열 클래스를 선언하고 초기화하는 예제입니다.
답변이있는 핵심 자바 인터뷰 질문
#include #include using namespace std; int main() { string str='This is string object in C++'; cout<<'
String entered is :'<위의 예에서는 'string'클래스를 사용하여 문자열 객체를 선언하고 초기화했습니다. 이것은 간단한 예입니다. 이제 사용자로부터 문자열을 읽고 길이를 찾고 두 문자열을 비교하는 등 몇 가지 문자열 함수를 시연하는 프로그램을 만들어 보겠습니다.
#include #include using namespace std; int main() { string str; cout<<'Input the string
'; getline(cin,str); cout<<'
String entered is :'< 산출:
문자열 입력
SoftwareTestingHelp
입력 된 문자열 : SoftwareTestingHelp
문자열 str의 길이 : 19
두 문자열이 동일합니다.
새로운 str1 : SoftwareTestingHelp.com
str 새 길이 : 0
위의 그림에서 우리는 문자열을 조작하기 위해 수많은 문자열 함수를 사용했습니다. 문자열을 선언 한 후 문자열 클래스의 'getline'함수를 사용하여 표준 입력에서 문자열을 읽습니다.
문자열을 읽으면 'length'함수를 사용하여 길이를 찾습니다. 두 문자열이 같은지 평가하기 위해 비교해야하는 경우 문자열 클래스의 '비교'기능을 사용할 수 있습니다. 함수가 0을 반환하면 두 문자열이 같고 그렇지 않으면 함수가 0이 아닌 값을 반환합니다.
또 다른 기능은 기존 문자열의 끝에 다른 문자열을 추가하는 것입니다. 이것이“추가”기능입니다. 이 예에서는 값이 'softwaretesting'인 기존 문자열 str1에‘.com’을 추가합니다.
예제의 마지막 함수는 호출하는 문자열 개체의 내용을 지우는 데 사용되는 지우기 함수입니다. 이 예제에서는 길이가 0이되도록 str 객체의 내용을 지 웁니다.
결론
이 튜토리얼에서는 문자열 클래스의 기본 사항과 함께 C 스타일 문자열이라고도하는 문자 배열을 다루었습니다. String 클래스는 컨테이너 클래스이기 때문에 반복기 클래스와 같은 더 많은 유틸리티와 함께 제공됩니다.
다가오는 STL 튜토리얼에서 문자열 클래스와 그 함수에 대해 더 많이 볼 것입니다 !!
=> 모두를위한 C ++ 교육 시리즈를 보려면 여기를 방문하십시오.
추천 도서