c字符串函数原型 | from web 待

来源:互联网 发布:mac修复win7引导工具 编辑:程序博客网 时间:2024/05/11 18:25

memset  strcpy strcat strcmp  strlen strstr  itoa  atoi

 

/*   *原型:extern void *memset(void *buffer, int c, int count);   *用法:#include <string.h>   *功能:把buffer所指内存区域的前count个字节设置成字符c。   *说明:返回指向buffer的指针。  */void *_memset(void *pdest,int c,size_t count){    assert(pdest!=NULL);    char *ptemp=(char *)pdest;    if(count==0) return ptemp;    while(count--)    {        *ptemp++=(char)c;    }    return pdest;}void main(){    char *c1=(char *)malloc(5);    _memset(c1,'a',4);    cout<<"c="<<c1<<endl;     //aaaa}


 

/**原型:extern char *strcpy(char *dest,char *src); *用法:#include <string.h> 功能:把src所指由NULL结束的字符串复制到dest所指的数组中。 *说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。*/char *_strcpy(char *strdest,const char*strsource){    assert((strdest!=NULL)&&(strsource!=NULL));    char *strtemp=strdest;    while ((*strdest++=*strsource++)!='\0');    return strtemp;}
/*原型:extern char *strcat(char *dest,char *src); *用法:#include <string.h> *功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。 *说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串,返回指向dest的指针。 */char *_strcat(char *dest,char *src){    assert((dest!=NULL)&&(src!=NULL));    char *temp=dest;    while(*dest!='\0') dest++;    while((*dest++ = *src++)!= '\0');    return temp;}


 

/* *原型:extern int strcmp(char *s1,char * s2,int n); *用法:#include <string.h> *功能:比较字符串s1和s2的前n个字符。 *说明: *当s1<s2时,返回值<0 *当s1=s2时,返回值=0 *当s1>s2时,返回值>0 */ int _strcmp(const char *str1,const char *str2){       int len = 0;       assert((str1 != '\0') && (str2 != '\0'));       while(*str1 && *str2 && (*str1 == *str2))       {              str1++;              str2++;       }       return *str1-*str2;}


 

/**原型:extern int strlen(char *s);        *用法:#include <string.h>  *功能:计算字符串s的长度*说明:返回s的长度,不包括结束符NULL。*/int strlen(const char *str){    int len = 0;    assert(str != NULL);    while(*str++)    {        len++;    }    return len;}


 

/*  *函数:strstr的实现  *原型:char *strstr(const char *pStr1, const char *pStr2);  *功能:在字符串pStr1中查找pStr2子串.  *      返回子串pStr2在pStr1中首次出现位置的指针.  *      如果没有找到子串pStr2,  *      则返回NULL. 如果子串pStr2为空串, 函数 *      返回pStr1值.  */ char *_strstr (const char *pStr1, const char *pStr2) {    assert((pStr1!=NULL)&&(pStr2!=NULL));    unsigned int i = 0;    if ( *pStr1 == 0 ) // 如果字符串pStr1为空    {        if ( *pStr2 ) // 如果字符串pStr2不为空            return (char*)NULL; // 则返回NULL        return (char*)pStr1; // 如筽Str2也为空,则返籶Str1    }    while ( *pStr1 ) // 串pStr1没有结束    {        i = 0;        while (1)        {            if ( pStr2[i] == 0 )            {                return (char*)pStr1;            }            if ( pStr2[i] != pStr1[i] )                break;            i++;        }        pStr1++;    }    return (char*)NULL;}


 

atoi:http://baike.baidu.com/view/653935.htm

itoa:http://baike.baidu.com/view/982195.htm

链接:http://www.cnblogs.com/herbert/archive/2011/01/26/1945614.html

链接:http://hi.baidu.com/dongxiang2007/blog/item/7184aa114e1ca3cca6ef3f3c.html


 

原创粉丝点击