logo

C/C++의 strdup() 및 strndup() 함수

그만큼 strdup() 그리고 문자열업() 함수는 문자열을 복제하는 데 사용됩니다.
strdup() :
구문: char *strdup(const char *s);
이 함수는 null로 끝나는 바이트 문자열에 대한 포인터를 반환합니다. 이는 다음이 가리키는 문자열과 중복됩니다. 에스 . 얻은 메모리는 malloc을 사용하여 동적으로 수행되므로 free()를 사용하여 해제할 수 있습니다.
중복된 문자열에 대한 포인터를 반환합니다. 에스 .
다음은 C에서 strdup() 함수의 사용을 보여주는 C 구현입니다.




여우 또는 늑대





// C program to demonstrate strdup()> #include> #include> int> main()> {> >char> source[] =>'GeeksForGeeks'>;> >// A copy of source is created dynamically> >// and pointer to copy is returned.> >char>* target = strdup(source);> >printf>(>'%s'>, target);> >return> 0;> }>



구조 속의 c 구조
>

>

산출:

GeeksForGeeks>

문자열업() :
통사론: char *strndup(const char *s, size_t n);
이 함수는 strdup()과 유사하지만 최대 N 바이트.
메모 : s가 n보다 길면 n바이트만 복사되고 끝에 NULL(' ')이 추가됩니다.
다음은 C에서 strndup() 함수의 사용을 보여주는 C 구현입니다.


안드로이드 버전



// C program to demonstrate strndup()> #include> #include> int> main()> {> >char> source[] =>'GeeksForGeeks'>;> >// 5 bytes of source are copied to a new memory> >// allocated dynamically and pointer to copied> >// memory is returned.> >char>* target = strndup(source, 5);> >printf>(>'%s'>, target);> >return> 0;> }>

>

mysql은 모든 사용자를 나열합니다
>

산출:

Geeks>

차이점을 표 형식으로 살펴보겠습니다.

strdup() 문자열업()
1. null로 끝나는 바이트 문자열에 대한 포인터를 반환하는 데 사용됩니다. null로 끝나는 바이트 문자열에 대한 포인터를 반환하는 데 사용됩니다.
2. 구문은 -:
char * strdup( const char *str1 );

구문은 -:

char *strndup( const char *str, size_t 크기 );

리눅스 명령으로 폴더 만들기
삼. 이는 다음에서 정의됩니다. 헤더 파일 이는 다음에서 정의됩니다. 헤더 파일
4. 복제할 널 종료 바이트 문자열에 대한 포인터인 매개변수 하나만 사용합니다.

다음과 같은 두 개의 매개변수를 사용합니다.
1. 복제할 널 종료 바이트 문자열에 대한 포인터

2. str에서 복사할 최대 바이트 수

5. 반환 값은 새로 할당된 문자열에 대한 포인터입니다. 오류가 발생하면 널 포인터를 반환합니다.

참조: 리눅스 맨(7)