strcpy 라이브러리 함수의 실현.strncpy 라이브러리 함수의 실현
1513 단어 c 언어
먼저strcpy 함수의 기능을 알아보자.strcpy는 src주소(원본)를'\0'으로 시작하고'\0'을 포함한 문자열을 dst주소(목적)로 복사한다.
구체적인 코드 보기
char *strcpy(char *dst,const char *src)
{
char *d = dst;//
assert((dst != NULL) && (src != NULL));//
while(*dst++ = *src++)// dst src
{ // ++ ++, \0, \0 ASCII 0, 0
;
}
return d;
}
이것은 라이브러리 함수이니, 그럼 우리 시험해 보고, 자신의 주요 함수를 하나 쓰자
int main()
{
char arr[20] = {0};
strcpy(arr,"hello world");
printf("%s",arr);
return 0;
}
strncpy 라이브러리 함수의 실현
strncpy는strcpy의 기초 위에서 복사한 개수 n을 더하기 때문에 실현하기는 매우 간단하지만 주의해야 할 것은 다음과 같다.
만약 복사할 문자 수 n이 복사할 src의 문자 수보다 적으면 라이브러리 함수에'\0'이 붙지 않습니다.
만약 복사할 개수 n이 src 문자의 개수보다 크다면, 이때 '\0' 으로 복사하면 됩니다.
코드:
#include
#include
#include
char* Strncpy(char* dst, char* src, size_t n)
{
assert(dst != NULL || src != NULL);
if (n >= strlen(src))
{
while (n&&(*dst++ = *src++) != '\0')
{
--n;
}
}
else
{
while (n--)
{
*dst++ = *src++;
}
//*dst = '\0';
}
return dst;
}
코드에서 const 사용법:
const에 의해 수식된 것은 상수는 바꿀 수 없지만 포인터를 통해 내용을 수정할 수 있습니다.
손질 포인터는 변경할 수 없지만 포인터가 가리키는 내용은 변경할 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
c 언어 간단한 파일 r/w 조작 방법데이터의 입력과 출력은 거의 모든 C 언어 프로그램과 수반된다. 입력이란 원본에서 데이터를 얻는 것이다. 출력은 단말기에 데이터를 쓰는 것으로 이해할 수 있다.이곳의 원본은 키보드, 마우스, 하드디스크, 시디, 스캐...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.