본문 바로가기
프로그래밍 언어/C

문자열, 공백 포함 문자열 입력

by 진진리 2023. 9. 23.
728x90
  • 문자열의 선언과 초기화
char str1[10] = "ABCD";

char str2[10];
str2 = "ABCD" //오류 -> 초기화와 대입은 다름

 

  • 포인터와 문자열
char st[] = "12345";  //배열에 의한 문자열의 크기는 6bytes
char *pt = "12345";  //포인터에 의한 문자열의 크기는 sizeof(char *) + 6bytes

포인터는 문자열 리터럴을 저장하기 위한 영역 외에도 pt가 갖는 메모리 영역이 더 필요

pr을 위한 영역: sizeof(char*)

 

  • 공백 포함 문자열 입력 받기

1. scanf("%[^\n]s",str);

[^'문자'] : 해당 문자가 나오기 전까지 모든 문자열을 받겠다는 의미

[^"문자열"] : 문자열을 구성하는 문자 중 하나라도 나오기 전까지 모든 문자열을 받음

["문자열"] : 문자열을 구성하는 문자 외 다른 문자가 나오기 전까지 모든 문자열을 받음

숫자["문자열"] : 위와 동일 + 해당 숫자만큼의 길이의 문자열을 받음

 

2. fgets(str, 크기, stdin);

공백을 포함해서 입력받는 함수


문자열 관련 함수 <string.h>

  • size_t strlen(const char *s) : 문자열 길이 반환
  • char* strchr(const char *s, int c): 찾은 문자에 대한 포인터 반환
  • char* strrchr(const char *s, int c): 가장 뒤쪽에 있는 문자를 찾아 해당 문자에 대한 포인터 반환
  • int strcmp(const char* s1, const char* s2): 문자열의 대소 관계 반환(같으면 0, s1이 크면 양의 정수, 작으면 음의 정수)
  • int strncmp(const char* s1, const char* s2, size_t n): n번째 문자까지 문자열의 대소 관계 반환

 

 

'프로그래밍 언어 > C' 카테고리의 다른 글

지역 변수, 전역 변수, 정적 변수  (0) 2023.09.23
goto문  (0) 2023.09.22
매개변수 전달  (0) 2023.09.22
2차원 배열 동적 할당  (0) 2023.09.21