参考mfc下的源文件以及网上的一些代码实现。留着做个参考
strcmp比较两个字符串大小
int mystrcmp( const char * src, const char * dst )
{
int ret = 0 ;
while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
{
++src;
++dst;
}
if ( ret < 0 )
{
ret = -1 ;
}
else if ( ret > 0 )
{
ret = 1 ;
}
else
{
}
return( ret );
}
strcpy复制字符串
char* mystrcpy( char* dest, const char* source)
{
char* start = dest;
while( *source )
{
*dest++ = *source++;
}
*dest = '\0';
return start;
}
strcat连接两个字符串
char* mystrcat( char* dst, const char* src )
{
if( src == NULL )
{
return dst;
}
char* start = dst;
while( *dst != '\0' )
{
dst++;
}
while( *src != '\0' )
{
*dst++ = *src++;
}
*dst = '\0';
return start;
}
直接插入排序
void straitSort(int src[], int nLength )
{
int j;
for( int i = 1; i < nLength; i++ )
{
int temp = src[i];
j = i - 1;
while((j>= 0) && (temp < src[j]))
{
src[j+1] = src[j];
j--;
}
src[j+1] = temp;
}
}
2分法排序
void binarySort( int src[], int nLength )
{
for( int i = 1; i < nLength; i++ )
{
int begin = 0;
int end = i-1;
int middle = (begin + end) / 2;
while(begin <= end)
{
if( src[i] >= src[middle] )
{
begin = middle + 1;
middle = (begin + end)/ 2;
}
else if( src[i] < src[middle] )
{
end = middle - 1;
middle = (begin+end) / 2;
}
}
int temp = src[i];
for( int m = i; m > begin; m--)
{
src[m] = src[m-1];
}
src[begin] = temp;
}
}
冒泡法排序
void bubbleSort( int src[], int nLength )
{
for( int i = 0; i < nLength; i++ )
{
for( int j = 1; j < nLength - i; j++)
{
if( src[j-1] < src[j] )
{
int temp = src[j-1];
src[j-1] = src[j];
src[j] = temp;
}
}
}
}