프로그래밍 기본지식 10탄

최주영·2022년 12월 11일
0

C언어

목록 보기
11/15

✅ 문자열이란?

  • 문자들의 배열 즉 문자들의 집합이다

    --예시--
    A -> 문자
    ABCD -> 문자열

  • null 문자 = 빈 문자 = '\0'
    항상 문자열의 끝에는 문자열의 끝을 나타내는 널문자가 사용됨

  • str[0] = "a" -> 오류 발생
    이유 : "a"는 'a'와, '\0'으로 두 칸으로 이루어져 있기 때문

✅ 문자열이 초기화 방법

  1. char str[6] = {'H','E','L','L','O','\0'};   # 항상 문자열의 끝은 널값
  2. char str[6] = "Hello";
  3. char str[] = "Hello";    # 배열 크기 자동지정

✅ 문자열 출력 방법

char c = 'A';   ## 문자 선언
char str[10] = "I Love You";  ## 문자열 선언

## 작은 따옴표는 '문자'일 때 사용하고, 큰 따옴표는 "문자열"일 때 사용해야 에러가 발생하지 않는다

printf("%c",c);  ## 문자 변수 c 출력
printf("%s",str);  ## 문자열 str 출력

✅ 문자열 처리 함수

  • 헤더에 #include<string.h> 를 삽입해야 문자열 처리 함수 사용 가능
  1. 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 출력

}
profile
우측 상단 햇님모양 클릭하셔서 무조건 야간모드로 봐주세요!!

0개의 댓글