문자들의 배열 즉 문자들의 집합이다
--예시--
A -> 문자
ABCD -> 문자열
null 문자 = 빈 문자 = '\0'
항상 문자열의 끝에는 문자열의 끝을 나타내는 널문자가 사용됨
- char str[6] = {'H','E','L','L','O','\0'}; # 항상 문자열의 끝은 널값
- char str[6] = "Hello";
- char str[] = "Hello"; # 배열 크기 자동지정
char c = 'A'; ## 문자 선언
char str[10] = "I Love You"; ## 문자열 선언
## 작은 따옴표는 '문자'일 때 사용하고, 큰 따옴표는 "문자열"일 때 사용해야 에러가 발생하지 않는다
printf("%c",c); ## 문자 변수 c 출력
printf("%s",str); ## 문자열 str 출력
strcpy() : 문자열 전체 복사 및 삽입
형식 : strcpy(배열명, "문자열");
-예시-
#include <stdio.h>
#include <string.h>
int main()
{
char x[20] = "BBBBBB";
strcpy(x, "AAA"); //배열 x의 값을 문자열 AAA로 교체합니다.
puts(x); ## AAA 출력
}
2. strncpy() : 문자열 부분 복사 및 삽입
형식 : strncpy(배열명, "문자열", 옮길개수);
-예시-
#include <stdio.h>
#include <string.h>
int main()
{
char x[20] = "BBBBBB";
strncpy(x, "AAAAAA", 3); //문자열 AAAAAA중에서 앞자리 3요소 AAA만 배열 x에 삽입합니다.
printf(x); ## 배열 x의 BBBBBB중 앞 세자리만 AAA로 대체되고 나머지 BBB는 유지된다.
## 출력결과 : AAABBB
}
3. strcat() : 문자열 배열에 다른 문자열을 뒤이어 결합
형식 : strcat(배열명, "결합할 문자열");
-예시-
#include <stdio.h>
#include <string.h>
int main()
{
char x[50] = "AAAAAA";
strcat(x, "BBBBBB"); //배열 x의 뒤에 문자열 BBBBBB 삽입
puts(x); //출력결과 : AAAAAABBBBBB
}
4. strrev() : 문자열 배열을 역순(reverse)으로 정렬
형식 : strrev(배열명);
-예시-
#include <stdio.h>
#include <string.h>
int main()
{
char x[50] = "ABCDEFG";
puts(strrev(x)); // 출력 결과 : GFEDCBA
}
5. strlwr(), strupr() : 문자열 대소문자 변환
strlwr : 대문자 -> 소문자
strupr : 소문자 -> 대문자
형식 : strlwr(배열명); strupr(배열명);
-예시-
#include <stdio.h>
#include <string.h>
int main()
{
char x[50] = "ABCDEFG";
char y[50] = "abcdefg";
puts(_strlwr(x)); // 출력결과 : abcdefg
puts(_strupr(y)); // 출력결과 : ABCEDFG
}
6. strlen() : 문자열 길이 측정 (NULL 문자를 제외한 실제 문자 개수)
형식 : strlen(배열명);
-예시-
#include <stdio.h>
#include <string.h>
int main()
{
char x[50] = "qskdjfklaslkdfjaskdfsdfskdjfklsdjklf";
int y;
int z;
y = strlen(x); //배열에서 NULL 문자 제외 문자 개수
z = sizeof(x); //배열 전체 크기
printf("배열 x의 문자 개수는 %d 입니다. \n", y); # 출력결과 :36
printf("배열 x의 크기는 %d 입니다. \n", z); # 출력결과 50
}
7. strcmp() : 문자열 비교
형식 : strcmp(문자열1, 문자열2);
strcmp(a, b)함수에서 a > b이면 -1, a = b이면 0, a < b,이면 1을 반환
-예시-
#include <stdio.h>
#include <string.h>
int main()
{
char x[50] = "ab";
char y[50] = "aABCDE";
int z;
z = strcmp(x, y);
printf("%d", z); # 1 출력
}