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 |