자신의 mystring을 실현하다.h
3387 단어 프로그램
/**************************************************/
char* mystrcpy( char *destin, const char *source )
{
if( destin == NULL || source == NULL )
{
return NULL;
}
char *addr = destin;
while( ( *destin++ = *source++ ) != '\0' );
return addr;
}
/**************************************************/
int mystrlen( const char *source )
{
if( source == NULL )
{
return 0;
}
int count = 0;
while( *source++ != '\0' )
{
count++;
}
return count;
}
/**************************************************/
char* mystrncpy( char *destin,const char *source, int num )
{
if( destin == NULL || source == NULL )
{
return NULL;
}
int limit = mystrlen( source );
char *addr = destin;
if( num > limit )
{
return NULL;
}
else
{
while( num-- )
{
*destin++ = *source++;
}
*destin = '\0';
return addr;
}
}
/**************************************************/
char* mystrcat( char *destin, const char *source )
{
if( destin == NULL || source == NULL )
{
return NULL;
}
char *addr = destin;
while( *destin++ != '\0' );
destin--;
while( ( *destin++ = *source++ ) != '\0' );
return addr;
}
/**************************************************/
char* mystrchr( char *source, char ch )
{
if( source == NULL )
{
return NULL;
}
while( *source != '\0' && ( *source++ != ch ) );
return *source == '\0' ? NULL:--source;
}
/**************************************************/
int mystrcmp( const char *destin, const char *source )
{
if( destin == NULL || source == NULL )
{
return destin - source;
}
while( *destin && *source && ( *destin++ == *source++ ) );
return *( destin -1 ) != *( source -1 ) ? \
*( destin-1 ) - *( source-1 ) : *destin - *source;
}
/**************************************************/
int mystrncmp( const char *destin, const char *source, int num )
{
if( destin == NULL || source == NULL || num <= 0 )
{
return destin - source;
}
while( num-- > 0 && *destin && *source && ( *destin++ == *source++ ) );
return *( destin-1 ) != *( source-1 ) || \
( num == 0 && *destin && *source ) ? \
*( destin-1 ) - *( source-1 ) : *destin - *source;
// , , ++
}
/**************************************************/
char* mystrstr( const char *source, const char *destin )
{
if( destin == NULL || source == NULL || \
*destin == '\0' || *source == '\0' )
{
return NULL;
}
char *position = (char *)source;
char *head = (char *)destin;
while( *source )
{
position = (char *)source;
destin = head;
while( *destin && *source && *destin++ == *source++ );
if( *destin == '\0' && *( destin-1 ) == *( source-1 ) )
{
return position;
}
if( *source == '\0' )
{
return NULL;
}
source = position + 1 ;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Unity 콘솔 화면에 주석을 달는 방법, Debug.Log 함수 사용Debug.Log 함수를 사용하여 콘솔 화면에 주석을 출력할 수 있습니다. 스크립트의 코멘트 출력과 실행중인 변수의 내용을 확인할 수 있습니다. 버그를 제거하기 위해 디버그 로그 (기록)를 검색 할 수 있기 때문에 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.