▸C언어/기본함수 및 구현식

string.h_strcat, strncat_문자열 합치기 (구현식 포함)

코데방 2020. 1. 15.
728x90

[ strcat ]

  • arguments로 제공된 두 문자열을 합쳐줌 (앞 문자열에 뒷 문자열 내용을 추가함)
  • 원본 문자열은 추가 문자열을 포함할만큼의 충분한 공간을 확보하고 있어야 함
  • 공간이 부족할 경우 에러 발생

[ strncat ]

  • 추가 문자열, 정확히는 char 타입 배열에서 가져올 바이트 수를 지정해줌

 

구현식은 아래와 같습니다. 실제 코드는 아니고 직접 짜본 코드입니다. 간단한 코드입니다.

 

[ strcat ]

 

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

void MyStrcat(char str[], char str2[]);

int main() {
	
	char str[15] = "Hello ";
	char str2[] = "Wolrd..!";

	strcat(str, str2);
	printf("%s\n", str); // "Hello Wolrd..!"

	char str3[15] = "Hello ";
	char str4[] = "Wolrd..!";

	MyStrcat(str3, str4);
	printf("%s\n", str3); // "Hello Wolrd..!"
}

/* strcat */
/* param : 원본 문자열, 더할 문자열 */
/* return  : void */
void MyStrcat(char str[], char str2[]) {

	int w = strlen(str);
	int i = 0;
	while (str2[i] != '\0') {
		str[w++] = str2[i++];
	}
}

 


 

[ strncat ]

 

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

void MyStrncat(char str[], char str2[], int n);

int main() {
	
	char str[15] = "Hello ";
	char str2[] = "Wolrd..!";

	strncat(str, str2, 2);
	printf("%s\n", str); // "Hello Wo"

	char str3[15] = "Hello ";
	char str4[] = "Wolrd..!";

	MyStrncat(str3, str4, 2);
	printf("%s\n", str3); // "Hello Wo"
}

/* strncat */
/* param : 원본 문자열, 더할 문자열, 가져올 바이트 수 */
/* return  : void */
void MyStrncat(char str[], char str2[], int n) {

	int w = strlen(str);
	int i = 0;
	while (str2[i] != '\0' && i < n) {
		str[w++] = str2[i++];
	}
}

 

728x90

댓글

💲 추천 글