Search
Duplicate
🙃

C에서 문장 여러개 한번에 합치기..(strjoin`s`)😅

간단소개
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
C
Scrap
태그
9 more properties
문자열 여러개 합쳐야 하는데 free처리가 너무 불편해서..
원하는 만큼 문자열을 합칠 수 있는 함수입니당

프로토타입

char *str_joins(char **strs, int n)
C
복사

파라미터

strs : 합쳐질 문자열 배열
n : 합쳐질 문자열 개수

리턴 값

성공 : 합쳐진 문자열
실패 : NULL

입력 예

int main(void) { char *test; char *comma; char **arg; test = "hi"; comma = ","; arg = (char *[3]){ // [n] 안에 합칠 문자열 개수를 넣기. count 함수 등 활용가능 test, comma, test }; // 방법 1 char *output = str_joins(arg, 3); printf("%s\n", output); // 출력 확인 return (0); } // 방법 2 /* 변수에 할당하지 않아도 사용가능하다. */ char *output = str_joins((char *[3]){"hello", " world" " !"}, 3); printf("%s\n", output); // 출력 확인
C
복사

출력 예

// 방법 1 hi,hi // 방법 2 hello world !
C
복사

코드

char* str_joins(char **strs, int n) { char *temp; char *output; int idx; idx = 0; output = strdup(strs[idx]); while (output && ++idx < n) { temp = strdup(output); // strdup 실패시 null 리턴 추가해도됨 free(output); output = strjoin(temp, strs[idx]); free(temp); } return (output); }
C
복사