常见系统函数

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.//*********************************************************************** char* reverse(char* Array)

{

int len = strlen(Array);

for(int i=0;i

{

char temp=*(Array+i);

*(Array+i)=*(Array+len-1-i);

*(Array+len-1-i)=temp;

}

*(Array+len)='\0';

return Array;

}

2.//*********************************************************************** long __cdecl atol(

const char *nptr

)

{

int c; /* current char */

long total; /* current total */

int sign; /* if '-', then negative, otherwise positive */

/* skip whitespace */

while ( isspace((int)(unsigned char)*nptr) )

++nptr;

c = (int)(unsigne

d char)*nptr++;

sign = c; /* save sign indication */

if (c == '-' || c == '+')

c = (int)(unsigne

d char)*nptr++; /* skip sign */

total = 0;

while (isdigit(c)) {

total = 10 * total + (c - '0'); /* accumulate digit */

c = (int)(unsigne

d char)*nptr++; /* get next char */

}

if (sign == '-')

return -total;

else

return total; /* return result, negated if necessary */

}

3.//***********************************************************************

判断一个链表是否为循环链表(追赶法)

bool isLoop(link *head)

{

link *p = head;

link *q = head;

while(p != NULL && q != NULL && q->next != NULL)

{

p = p->next;

q = q->next->next;

if(p == q)

return true;

}

return false;

}

4.//*********************************************************************** char * __cdecl strchr (

const char * string,

int ch

)

{

while (*string && *string != (char)ch)

string++;

if (*string == (char)ch)

return((char *)string);

return(NULL);

}

5.//*********************************************************************** char *strstr (char *buf,char *sub)

{

char *bp;

char *sp;

if (!*sub)

return buf;

while (*buf)

{

bp = buf;

sp = sub;

while (*bp++ == *sp++)

{

if (!*sp)

return buf;

}

buf += 1;

}

return NULL;

}

6.//*********************************************************************** int strcmp (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 ;

return( ret );

}

7.//*********************************************************************** size_t strlen (const char * str)

{

const char *eos = str;

while( *eos++ ) ;

return( eos - str - 1 );

}

8.//*********************************************************************** int __cdecl printf (

const char *format,

...

)

/*

* stdout 'PRINT', 'F'ormatted

*/

{

va_list arglist;

int buffing;

int retval;

va_start(arglist, format);

_ASSERTE(format != NULL);

相关文档
最新文档