1 / 13

제 3 장 String and Array

제 3 장 String and Array. 스트링의 표현 방법 (1/4). 정의 일련의 문자 1 차원적인 문장의 배열 , 공백과 구두점 같은 특수 문자들을 포함한 모든 유효한 문자를 사용한 문자들의 모임 ex) “Korea University”, .. 등. 1 워드. • • •. M. 처리속도 빠르지만 기억장소 활용도 낮음. • • •. E. • • •. M. • • •. O. • • •. . 비압축 스트링. 스트링의 표현 방법 (2/4). 스트링의 표현방법 순차 스트링

Download Presentation

제 3 장 String and Array

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 제 3 장 String and Array

  2. 스트링의 표현 방법 (1/4) • 정의 • 일련의 문자 • 1 차원적인 문장의 배열, 공백과 구두점 같은 특수 문자들을 포함한 모든 유효한 문자를 사용한 문자들의 모임 • ex) “Korea University”, .. 등

  3. 1워드 ••• M 처리속도 빠르지만 기억장소 활용도 낮음 ••• E ••• M ••• O ••• \0 비압축 스트링 스트링의 표현 방법 (2/4) • 스트링의 표현방법 • 순차 스트링 • 스트링 S에 대하여, S의 연속적인 문자들을 위하여 문자 코드들을 연속적인 워드에 나타내는 방법

  4. 스트링의 표현 방법 (3/4) • 스트링의 표현방법 • 고정길이 스트링 • 압축 스트링 • 연결 리스트 1워드 P A C K E D S T R I N G ••• XXX XXX XXX XXX

  5. 스트링의 표현 방법 (4/4) • 스트링의 표현방법 • 가변길이 스트링 • 스트링의 길이를 예측하기 어려운 경우 사용하는 방법 • ex) 어셈블러의 매크로 확장이나 스트링 결합과 같이 새로운 스트링을 다른 데이터의 함수로 계산하는 경우, .. 등. • 프로그램 수행 도중 변화를 처리

  6. 스트링 연산 (1/4) • 스트링 연산 • 결합(concatenation) • 두 스트링을 연쇄적으로 연결한 합성된 스트링이 결과로 나오는 연산 • 예) F=“KIM”, L = “LR” 일 때 F||L 이면 S=“KIMLR” • 삽입(insertion) • 스트링을 구성하는 문자와 문자 사이에 새로운 스트링을 삽입하는 연산 • 예) S=“OPQRST”일 때 “PQ” S  “P, Q” 이면 S = “OP, QRST”

  7. 스트링 연산 (2/4) • 스트링 연산 • 삭제 (deletion) • 스트링을 구성하는 문자들 중의 하나 이상의 문자를 제거하는 연산 • 예) S = “OPQRST”일 때 “P”  S  “ “ 이면, S = “OQRST” • 교체 (replacement) • 스트링을 구성하는 문자들 중의 하나 이상의 문자를 제거하는 연산 • 예) S = “$ 3.00” 일때 “3.00”  S  “3.50”이면 S = “$3.50” 으로 바뀐다.

  8. 스트링 연산 (3/4) • 스트링 연산 • 서브스트링(substring) • 스트링을 구성하는 연속적인 문자들 중에서 일부를 찾아 새로운 스트링을 만드는 연산 • 패턴 매칭(pattern matching) • 스트링 중 지정된 서브스트링을 찾는 것으로, 지정된 서브 스트링이 있으면 참이고, 없으면 거짓인 연산 • 예) S =“OPQRST”일때 “P”  S의 결과는 참

  9. 스트링 연산 (4/4) • 스트링 연산 • 인덱싱 (indexing) • 스트링 내에서 어떤 문자 또는 서브 스트링의 위치를 정수로 나타내는 연산 • 예) P = “LINKED LIST”인 P에서 “LIS”의 인덱싱 = 8 (만약 ,해당 문자가 없으면 0이며, 복수 개이면 최초의 경우가 해당)

  10. C 언어에서 스트링 연산 • 결합연산 • 스트링 s1과 s2를 결합한 결과를 반환 char *concate (char *s1, char *s2){ char *s3; int len1, len2, len3, i; len1=strlen(s1); len2=strlen(s2); len3=len1+len2; s3=malloc(len3+1); i=0; while(*s1){ s3[i++]=*s1; s1++; } while(*s2){ s3[I++]=*s2; s2++; } s3[I]=‘/0’; return(s3); }

  11. 1 차원 배열 (1/3) • 배열의 정의 • 동일한 데이타형을 갖는 원소들이 2차원 장방형 구조에 놓여 있는 집합체 • 인덱스와 값의 쌍으로 구성된 집합이며 반드시 유한성을 갖음 • 배열 표현과 주소 할당 주소 배열 원소 1 2 3 4 5 6 7 8 9 A(0,0) A(0,1) A(0,2) A(1,0) A(1,1) A(1,2) A(2,0) A(2,1) A(2,2) A(0,0) A(0,1) A(0,2) A(1,0) A(1,1) A(1,2) A(2,0) A(2,1) A(2,2) 배열 표현 배열의 주소할당

  12. 1차원 배열 (2/3) • 배열의 공리 structure ARRAY(value, index) ① declare CREATE() --> array ② RETRIEVE(array, index) --> value; STORE(array, index, value) --> array; ③ for all A  array, i, j  index, x  value let ④ RETRIEVE(CREATE, i) ::= error; ⑤ RETRIEVE(STORE(A, i, x), j) ::= if EQUAL(i, j) then x else RETRIEVE(A, j); end end ARRAY

  13. C 언어에서의 배열 • 1차원 배열의 선언 • 2차원 배열의 선언 • C 언어에서 2차원 배열의 기억 장소 배열 순서는 행우선 법칙을 사용 데이타형태[] 배열명 = 데이타형태[원소수]; 데이타형태[][] 배열명 = 데이타형태[원소수][원소수];

More Related