C++의 문자 배열 과 문자열 을 깊이 분석 하 는 방법

6256 단어 C++
C++문자 배열
문자 데 이 터 를 저장 하 는 배열 은 문자 배열 이 고 문자 배열 의 한 요소 가 문 자 를 저장 합 니 다.문자 배열 은 배열 의 공 통 된 속성 을 가지 고 있다.문자열 의 응용 이 광범 위 하기 때문에 C 와 C++는 그것 에 많은 편리 한 용법 과 함 수 를 제공 합 니 다.
문자 배열 의 정의 와 초기 화
문자 배열 을 정의 하 는 방법 은 앞에서 소개 한 것 과 유사 합 니 다.예 를 들 면:

  char c[10];
  c[0]=′I′;c[1]=′ ′;c[2]=′a′;c[3]=′m′;c[4]=′ ′;c[5]=′h′;c[6]=′a′;c[7]=′p′;c[8]=′p′;c[9]=′y′;
위 에 c 를 문자 배열 로 정의 하고 10 개의 요 소 를 포함 합 니 다.값 을 부여 한 후 배열 의 상 태 는 그림 과 같다.

문자 배열 을 초기 화 하 는 가장 이해 하기 쉬 운 방법 은 한 글자 씩 배열 의 각 요 소 를 부여 하 는 것 입 니 다....와 같다

  char c[10]={'I',' ','a','m',' ','h','a','p','p','y'};
10 개의 문 자 를 각각 c[0]~c[9]라 는 10 개의 요소 에 부여 합 니 다.
괄호 에서 제공 하 는 초기 값 의 개수 가 배열 의 길이 보다 크 면 문법 오류 에 따라 처리 합 니 다.초기 값 의 개수 가 배열 의 길이 보다 작 으 면 이 문자 들 을 배열 의 앞 에 있 는 요소 에 만 부여 하고 나머지 요 소 는 자동 으로 빈 문자 로 정 합 니 다.제 공 된 초기 값 갯 수가 예 정 된 배열 의 길이 와 같 으 면 정의 할 때 배열 의 길 이 를 생략 할 수 있 고 시스템 은 자동 으로 초기 값 갯 수 에 따라 배열 의 길 이 를 정할 수 있 습 니 다.예:

  char c[]={'I',' ','a','m',' ','h','a','p','p','y'};
2 차원 문자 배열 을 정의 하고 초기 화 할 수도 있 습 니 다.예 를 들 어
   
char diamond[5][5]={{' ',' ','*'},{' ', '*',' ','*'},{'*',' ',' ',' ','*'},{' ','*',' ','*'},{' ',' ','*'}};
문자 배열 의 할당 과 참조
문자 배열 의 요소 에 만 값 을 부여 할 수 있 고 전체 배열 에 할당 할 수 없습니다.예:

  char c[5];
  c={'C','h','i','n','a'}; //  ,           
  c[0]='C'; c[1]='h';c[2]='i';c[3]='n';c[4]='a'; //       ,  
a 와 b 가 같은 유형 과 길 이 를 가 진 배열 로 정의 되 었 고 b 배열 이 초기 화 되 었 다 면 분석 하 십시오.

  a=b; //  ,           
  a[0]=b[0]; //  ,      
[예]다이아몬드 도형 을 디자인 하고 출력 합 니 다.

#include <iostream>
using namespace std;
void main( )
{
  char diamond[][5]={{' ',' ','*'},{' ','*',' ','*'},{'*',' ',' ',' ','*'},{' ','*',' ','*'},{' ',' ','*'}};
  int i,j;
  for (i=0;i<5;i++)
  {
   for (j=0;j<5;j++)
   cout<<diamond[i][j]; //        ,        
   cout<<endl;
  }
}

C++문자열 을 처리 하 는 방법-문자열 클래스 와 문자열 변수
문자열 을 문자 배열 로 저장 하 는 것 이 가장 이상 적 이 고 안전 한 방법 은 아 닙 니 다.
C++는 새로운 데이터 형식 인 문자열 형식(string 형식)을 제공 합 니 다.사용 방법 에 있어 서 char,int 형식 과 마찬가지 로 변 수 를 정의 할 수 있 습 니 다.이것 이 바로 문자열 변수 입 니 다.하나의 이름 으로 문자 순 서 를 대표 합 니 다.
실제로 string 은 C++언어 자체 가 가지 고 있 는 기본 형식 이 아 닙 니 다.C+표준 라 이브 러 리 에서 설명 하 는 문자열 류 입 니 다.이 종류 로 대상 을 정의 할 수 있 습 니 다.모든 문자열 변 수 는 string 류 의 대상 입 니 다.
문자열 변수의 정의 와 참조
1)정의 문자열 변수
다른 유형의 변수 와 마찬가지 로 문자열 변 수 는 먼저 정의 한 후에 사용 해 야 합 니 다.문자열 변 수 는 클래스 이름 string 을 사용 해 야 합 니 다.예:

  string string1; //  string1      
  string string2=″China″; //  string2       
주의:string 류 의 기능 을 사용 하려 면 이 파일 의 시작 부분 에 C+표준 라 이브 러 리 의 string 헤더 파일 을 포함 시 켜 야 합 니 다.즉,추가 해 야 합 니 다.

  #include <string> //        string.h
2)문자열 변수 에 대한 할당
문자열 변 수 를 정의 한 후,다음 과 같은 문자열 상수 문 구 를 사용 할 수 있 습 니 다.

  string1=″Canada″;
문자열 상수 로 문자열 변수 에 값 을 부여 할 수도 있 고,문자열 변수 로 다른 문자열 변수 에 값 을 부여 할 수도 있다.예:

  string2=string1; //  string2 string1          
string 2 와 string 1 의 길이 가 같 으 라 고 요구 하지 않 습 니 다.string 2 가 원래〃China〃라면 string 1 은 원래〃Canada〃이 고,할당 후 string 2 도〃Canada〃가 됩 니 다.문자열 변 수 를 정의 할 때 길 이 를 지정 하지 않 아 도 됩 니 다.길 이 는 문자열 의 길이 에 따라 달라 집 니 다.
다음 과 같은 문자열 변수의 한 문 자 를 조작 할 수 있 습 니 다.

  string word=″Then″; //           word
  word[2]=′a′; //     2   ,   word   ″Than″
3)문자열 변수의 입 출력
입 출력 문 에 문자열 변수 이름 을 사용 하여 출력 문자열 을 입력 할 수 있 습 니 다.예 를 들 어:

  cin>> string1; //                string1
  cout<< string2; //    string2  
문자열 변수의 연산
이전 절 에서 볼 수 있 습 니 다.문자열 을 문자 배열 로 저장 할 때 문자열 의 연산 은 문자열 함수,예 를 들 어 strcat(연결),strcmp(비교),strcpy(복사)를 사용 해 야 합 니 다.string 류 대상 은 이러한 함 수 를 사용 하지 않 고 간단 한 연산 자 를 사용 할 수 있 습 니 다.
1)문자열 복사 용 할당 번호

  string1=string2;
그 역할 은"strcpy(string 1,string 2)"와 같 습 니 다.같다
2)문자열 연결 용 추가 번호

  string string1=″C++″; //  string1    
  string string2=″Language″;//  string2    
  string1=string1 + string2;//  string1 string2
연결 후 string 1 은〃C+Language〃입 니 다.
3)문자열 은 관계 연산 자 를 직접 사용한다.
직접 사용 가능==(같 음),>(크 고),<(작 음),!=(같 지 않 음),>=(크 거나 같 음),<=(작 거나 같 음)등 관계 연산 자 를 비교 합 니 다.
문자열 배열
문자열 변 수 를 string 으로 정의 할 수 있 을 뿐만 아니 라 문자열 배열 도 string 으로 정의 할 수 있 습 니 다.예:

  string name[5]; //         ,   5      
  string name[5]={″Zhang″, ″Li″, ″Fun″, ″Wang″, ″Tan″}; //             
이 때 name 배열 의 상황 은 그림 과 같 습 니 다.

문자열 배열 에 대한 몇 가지 설명:
하나의 문자열 배열 에 몇 개의(현재 5 개)요 소 를 포함 하고 있 으 며,각 요 소 는 하나의 문자열 변수 에 해당 합 니 다.
모든 문자열 요소 에 같은 길 이 를 요구 하지 않 습 니 다.같은 요소 에 있어 서도 길 이 는 변 할 수 있 습 니 다.특정한 요소 에 다시 값 을 부여 하면 길이 가 변 할 수 있 습 니 다.
문자열 배열 의 모든 요소 에 문자열 을 저장 합 니 다.문자열 배열 과 문자 배열 의 차이 입 니 다.문자열 을 문자 배열 로 저장 하면 한 요 소 는 한 글자 만 저장 할 수 있 고 1 차원 문자 배열 로 문자열 을 저장 할 수 있 습 니 다.
모든 문자열 요소 에는 문자열 자체 의 문자 만 포함 되 어 있 을 뿐 좋 을 것 같 아.
문자열 배열 로 문자열 을 저장 하고 문자열 을 처리 하 는 것 이 편리 하 다 는 것 을 알 수 있다.
문자열 배열 을 정의 할 때 어떻게 배열 에 저장 공간 을 분배 합 니까?실제로 컴 파일 시스템 은 모든 문자열 변수 에 4 개의 바이트 를 할당 합 니 다.이 저장 장치 에 서 는 문자열 자 체 를 직접 저장 하 는 것 이 아니 라 문자열 을 저장 하 는 주소 입 니 다.이 예 에 서 는 문자열〃Zhang〃의 주 소 를 name[0]에 저장 하고 문자열〃Li〃의 주 소 를 name[1]에 저장 하 며 문자열〃Fun〃의 주 소 를 name[2]에 저장 하 는 것 이다.문자열 변수 에 저 장 된 것 은 문자열 의 포인터(문자열 의 주소)입 니 다.

좋은 웹페이지 즐겨찾기