C++의 문자열 처리 함수 와 지침 을 분석 합 니 다.

4177 단어 C++
C++문자열 처리 함수
문자열 연결 함수 strcat
함수

  strcat(char[],const char[]);
strcat 는 string catenate(문자열 연결)의 줄 임 말 입 니 다.이 함 수 는 두 개의 문자 배열 의 매개 변수 가 있 습 니 다.함수 의 역할 은 두 번 째 문자 배열 의 문자열 을 앞 문자 배열 의 문자열 뒤에 연결 하 는 것 입 니 다.두 번 째 문자 배열 은 const 로 지정 되 어 이 배열 의 내용 이 함수 호출 기간 에 수정 되 지 않도록 합 니 다.연 결 된 문자열 은 첫 번 째 문자 배열 에 놓 여 있 습 니 다.함수 호출 후 얻 은 함수 값 은 첫 번 째 문자 배열 의 주소 입 니 다.예 를 들 면:

  char str1[30]=″People′s Republic of ″;
  char str2[]=″China″;
  cout<<strcat(str1, str2)); //  strcat  
출력:

People′s Republic of China
연결 전후의 상황 은 그림 과 같다.

문자열 복사 함수 strcpy
그 함수 원형 은:

  strcpy(char[], const char[]);
strcpy 는 string copy(문자열 복사)의 줄 임 말 입 니 다.두 번 째 문자 배열 의 문자열 을 첫 번 째 문자 배열 에 복사 하여 첫 번 째 문자 배열 의 해당 문 자 를 덮어 쓰 는 역할 을 합 니 다.예 를 들 면:

  char str1[10], str2[]=″China″;
  strcpy(str1, str2);
실행 후 str 2 의 5 글자〃China〃와 진짜\0 진짜(총 6 글자)를 배열 str 1 에 복사 합 니 다.
문자열 복사 함수 strcpy 에 대한 몇 가지 설명:
strcpy 함 수 를 호출 할 때 첫 번 째 매개 변 수 는 배열 이름(예 를 들 어 str 1)이 어야 합 니 다.두 번 째 매개 변 수 는 문자 배열 이름 일 수도 있 고 문자열 상수 일 수도 있 습 니 다.
strcpy 함수 로 문자열 의 앞 에 있 는 몇 개의 문 자 를 문자 배열 에 복사 할 수 있 습 니 다.
strcpy 함 수 를 호출 하여 문자열 을 문자 배열 에 부여 할 수 있 을 뿐,할당 문 구 를 사용 하여 문자열 상수 나 문자 배열 을 문자 배열 에 직접 부여 할 수 없습니다.
문자열 비교 함수 strcmp
함수

  strcmp(const char[],const char[]);
strcmp 는 string compare(문자열 비교)의 줄 임 말이다.역할 은 두 문자열 을 비교 하 는 것 이다.이 두 문자 배열 은 비교 에 만 참가 하고 내용 을 바 꾸 지 말 아야 하기 때문에 두 매개 변 수 는 모두 const 성명 을 추가 합 니 다.아래 의 문법 은 합법적이다.

  strcmp(str1, str2);
  strcmp(″China″, ″Korea″);
  strcmp(str1, ″Beijing″);
비교 결 과 는 함수 값 에서 가 져 옵 니 다:
문자열 1=문자열 2 의 경우 함수 값 은 0 입 니 다.
문자열 1>문자열 2 가 있 으 면 함수 값 은 정수 입 니 다.
문자열 1<문자열 2,함수 값 은 마이너스 정수 입 니 다.
문자열 비교 규칙 은 다른 언어의 규칙 과 같 습 니 다.즉,두 문자열 을 왼쪽 에서 오른쪽으로 한 글자 씩 비교 하 는 것 입 니 다.모든 문자 가 같 으 면 같다 고 생각 합 니 다.다른 문자 가 나 오 면 첫 번 째 다른 문자 의 비교 결 과 를 기준 으로 합 니 다.
메모:두 문자열 을 비교 할 때 다음 과 같은 형식 을 사용 할 수 없습니다.

  if(str1>str2) cout<<″yes″;
문자 배열 이름 str1 과 str2 는 배열 주 소 를 대표 합 니 다.위 에 쓰 는 방법 은 두 배열 의 주 소 를 비교 하 는 것 이지 배열 의 문자열 을 비교 하 는 것 이 아 닙 니 다.두 문자열 을 비교 해 야 합 니 다.

  if(strcmp(str1, str2)>0) cout<<″yes″;
문자열 길이 함수 strlen
함수 프로 토 타 입:

  strlen(const char[]);
strlen 은 string length(문자열 길이)의 줄 임 말 입 니 다.문자열 길 이 를 측정 하 는 함수 입 니 다.그 함수 의 값 은 문자열 의 실제 길이 로 진짜\0 을 포함 하지 않 는 다.예:

  char str[10]=″China″;
  cout<<strlen(str);
출력 결 과 는 10 도 6 도 아니 고 5 입 니 다.
이상 은 몇 가지 자주 사용 하 는 문자열 처리 함수 입 니 다.그 밖 에 다른 함수 도 있 습 니 다.
C++포인터 의 개념
포인터 가 무엇 인지 말 하기 위해 서 는 데이터 가 메모리 에 어떻게 저장 되 고 어떻게 읽 는 지 알 아야 한다.
프로그램 에서 변 수 를 정의 하면 컴 파일 할 때 이 변수 에 메모리 셀 을 할당 합 니 다.시스템 은 프로그램 에서 정 의 된 변수 유형 에 따라 일정한 길이 의 공간 을 분배 합 니 다.예 를 들 어 C+컴 파일 시스템 은 보통 정형 변수 에 4 개의 바이트 를 분배 하고 단일 정밀도 부동 소수점 형 변수 에 4 개의 바이트 를 분배 하 며 문자 형 변수 에 1 개의 바이트 를 분배 한다.메모리 구역 의 모든 바이트 에 번호 가 있 습 니 다.이 그림 은 바로'주소'입 니 다.

메모리 셀 의 주소 와 메모리 셀 의 내용 이라는 두 개념의 차 이 를 반드시 알 아야 합 니 다.프로그램 에 서 는 일반적으로 변수 이름 을 통 해 메모리 셀 을 액세스 합 니 다.사실 프로그램 은 컴 파일 을 거 친 후에 변수 이름 을 변수의 주소 로 바 꾸 었 고 변수 값 에 대한 접근 은 모두 주 소 를 통 해 이 루어 졌 다.변수 주소 에 따라 변수 값 을 액세스 하 는 방식 을 직접 액세스 방식 또는 직접 접근 방식 이 라 고 합 니 다.
간접 액세스(간접 접근)라 는 또 다른 방식 도 사용 할 수 있다.프로그램 에서 주 소 를 저장 하 는 특수 한 변 수 를 정의 할 수 있 습 니 다.
위의 그림 은 직접 방문 과 간접 방문 의 설명도 이다.수치 3 을 변수 에 보 내기 위해 서 는 두 가지 방법 이 있 습 니 다.
수 3 을 정형 변수 i 가 표시 하 는 단원 에 직접 보 냅 니 다.
3 을 포인터 변수 i 로 보 내기pointer 가 가리 키 는 단원(이것 이 변수 i 가 표시 하 는 단원)중 입 니 다.그림 을 보다

지향 이란 주 소 를 통 해 나타 나 는 것 이다.
주 소 를 통 해 필요 한 변수 단원 을 찾 을 수 있 기 때문에 주 소 는 이 변수 단원 을 가리킨다 고 할 수 있다.따라서 주 소 를'포인터'라 고 형상화 하고 변수의 주 소 를 이 변수의 포인터 라 고 부른다.
다른 변수 주소(즉 포인터)를 저장 하 는 변수 가 있다 면 포인터 변수 라 고 합 니 다.포인터 변수의 값(즉 포인터 변수 에 저 장 된 값)은 주소(즉 포인터)입 니 다.

좋은 웹페이지 즐겨찾기