-
C언어) 문자열, 문자열 배열 기본 개념컴퓨터 공부/C언어) 백준 단계별 풀이 2020. 3. 19. 12:07
0개 이상의 문자 여러 개 배열( 길이가 0인 것도 문자열)
▶ char a[10] = " "(널문자로 초기화) --> 최대 9자 저장 가능
왜냐하면, 문자열 맨 끝 무조건 \0(널문자)
#널문자 아스키코드 : 0 (문자 '0'과 다름 주의!!)
출력 형식 = %s (널문자 나올 때까지 출력, so 널문자 관리 조심 또 주의!)
'문자'
"문자열"
▶ char str[10] = "hello"
나머지 자리는 자동으로 \0으로 채워짐 --> h e l l o \0 \0 \0 \0 \0
▶ 선언과 별로로 따로 문자열 변수에 값 넣기 : strcpy
strcpy(str,"hello");
▶ 포인터 --> 문자열 (선언)
char * ptr = "hello"; ( 출력만 가능! 값 변경 x)
ptr 상수테이블 s
□ → hello ← □ (char *s;
s=ptr; )
.
문자열 배열
2차원 배열!
▶ char str[3][10] = {"Hello", "World", "Program" };
저장공간 생성, 변경 가능
H e l l o \0 \0 \0 \0 \0 W o r l d \0 \0 \0 \0 \0 P r o g r a m \0 \0 \0 str[0] --> "Hello" (1차원 배열)
str[1] --> "World"
str[2] --> "Program"
strcpy (str[0] , "name");
N a m e \0 \0 \0 \0 \0 \0 W o r l d \0 \0 \0 \0 \0 P r o g r a m \0 \0 \0 ▶ char *ptr [3] = {"Hello", "World", "Program" };
우선순위 []>* (3개짜리 배열 먼저 생성, 그 안에 포인터 변수 각각 생성)
ptr
*p *p *p 각각의 포인터 --> 상수 테이블 속 문자들 가리킴.
※ scanf vs gets
scanf는 숫자로 받음
gets는 문자로 입력받음
※ fgets (str, 9, stdin) //9글자 제한, str에 저장, strdin : 표준입출력 (키보드)
\n 엔터까지 저장!!!
h i \n \0 \0 \0 str[strlen(str-1)] = '\0';
h i \0 \0 \0 \0 '컴퓨터 공부 > C언어) 백준 단계별 풀이' 카테고리의 다른 글
C언어) 문자열 처리 함수 정리 (0) 2020.03.19 11720번) 문자열 계산 (0) 2020.03.19 11654번 아스키코드 (0) 2020.03.19 4344번 평균은 넘겠지 (0) 2020.03.19 중간값 구하기 (0) 2020.03.19