줘이리의 인생적기

C - 문자열(2) 본문

공부/C

C - 문자열(2)

줘이리 2020. 5. 19. 19:06
728x90

 

Index

  • strcpy
  • strncpy
  • strcat, strncat
  • strlen
  • strcmp, strncmp

1. strcpy

char배열의 단점은 다른 문자열로 바꾸려면 문자를 하나씩 옮겨야 하는 번거로움이다.

strcpy(string copy)를 이용하면 문자열을 쉽게 복사할 수 있다.

 

strcpy(복사 받을 곳, 복사할 내용)

복사 받을 곳이 위치하고 있는 첫 번째 인수는 char 배열이나 배열명을 저장한 포인터만 사용 가능하다.

복사할 내용이 위치하고 있는 두 번째 인수는 시작 위치를 알 수 있다면 어떤 것이든 사용 가능하다.

(strcpy 함수 원형이 있는 string.h 헤더파일을 인클루드 해야한다.)

 

2. strncpy

복사할 때 문자의 수를 지정할 수 있다.

strncpy(복사 받을 매열명, 복사할 문자열, 복사할 문자 수);

 

strncpy 예제

#include <stdio.h>
#include <string.h>                

int main(void)
{
	char str[30] = "apple banana";   

	strncpy(str, "mango watermelon", 5);  

	printf("%s\n", str);       

	return 0;
}

실행결과

 

3. strcat, strncat

문자열 뒤에 이어 붙일 때 사용가능한 함수들이다.

 

strcat은 문자열을 이어 붙이고, strncat은 지정한 문자의 개수만큼 붙인다.

 

strcat, strncat 예제

#include <stdio.h>
#include <string.h>      

int main(void)
{
	char str[50] = "apple";  

	strcat(str, "juice");    
	printf("%s\n", str);
	strncat(str, "pie pie pie", 3);  
	printf("%s\n", str);

	return 0;
}

실행결과

주의할 점은 이어 붙이는 거라 메모리 공간이 충분히 있어야 한다.

strcat 함수를 사용할 때는 배열을 초기화 해야 한다. (쓰레기 값의 중간부터 붙여넣을 가능성이 크다.)

 

 

4. strlen

배열에 저장된 문자열의 실제 길이를 알고 싶을 때 사용하는 함수이다.

strlen(크기를 확인할 배열명)

 

5. strcmp, strncmp

문자열을 비교하는 함수이다.

두 문자열의 사전 순서를 판단하여 결과를 판단한다.

strcmp(str1, str2);

str1이 str2보다 사전에 나중에 나오면 1반환

str1이 str2보다 사전에 먼저 나오면 -1 반환

같으면 0 반환

 

이 함수는 문자들을 아스키코드 값으로 비교한다.

'공부 > C' 카테고리의 다른 글

C - 변수의 영역, 데이터 공유  (0) 2020.05.21
C - 문자열(1)  (0) 2020.05.18
C - 문자  (0) 2020.05.18
C - 포인터  (0) 2020.05.14
C - 배열  (0) 2020.05.14