[String]dstr_cat함수의 구현
dstr_cat: 동적으로 두 스트링을 결합해준다.
gcc ver: 2.95.4
os; linux
compile: gcc -o test test.c
require memory free: yes
[code]
#include <stdio.h>
#include <malloc.h>
int dstr_cat(char *,char *,char **);
int main(int argc,char **argv){
char *src="This is";
char *dest=" Sample";
char *ret;
dstr_cat(src,dest,&ret);
printf("%s\n",ret);
free(ret);
return 0;
}
int dstr_cat(char *src,char *dest,char **ret){
int src_len=0;
int dest_len=0;
src_len=strlen(src);
dest_len=strlen(dest);
if(((*ret)=(char *)malloc(sizeof(char)*(src_len+dest_len)+1))==NULL) return 1;
memset((*ret),0x0,sizeof(char)*(src_len+dest_len)+1);
memmove((*ret),src,src_len);
memmove((*ret)+src_len,dest,dest_len);
return 0;
}
[/code]
dstr_cat: 동적으로 두 스트링을 결합해준다.
gcc ver: 2.95.4
os; linux
compile: gcc -o test test.c
require memory free: yes
[code]
#include <stdio.h>
#include <malloc.h>
int dstr_cat(char *,char *,char **);
int main(int argc,char **argv){
char *src="This is";
char *dest=" Sample";
char *ret;
dstr_cat(src,dest,&ret);
printf("%s\n",ret);
free(ret);
return 0;
}
int dstr_cat(char *src,char *dest,char **ret){
int src_len=0;
int dest_len=0;
src_len=strlen(src);
dest_len=strlen(dest);
if(((*ret)=(char *)malloc(sizeof(char)*(src_len+dest_len)+1))==NULL) return 1;
memset((*ret),0x0,sizeof(char)*(src_len+dest_len)+1);
memmove((*ret),src,src_len);
memmove((*ret)+src_len,dest,dest_len);
return 0;
}
[/code]
'Native > C++' 카테고리의 다른 글
[Array]array_push_str함수의 구현 (0) | 2013.10.02 |
---|---|
[Array]array_push_chr함수의 구현 (0) | 2013.10.02 |
[File]getline함수의 구현 (0) | 2013.10.02 |
[String]str_repeat함수의 구현 (0) | 2013.10.02 |
[String]strtoupper함수의 구현 (0) | 2013.10.02 |