常见系统函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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);