自定义与字符串相关的函数

来源:互联网 发布:软件测试 精品课程 编辑:程序博客网 时间:2024/06/16 20:46

一,assert()

assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:

#include <assert.h>void assert( int expression );
assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。


二,strcpy()

char *strcpy(char *dest, const char *src){    assert((dest != NULL)&&(src != NULL));    char *p = dest;    while(*src != '\0')    {        *dest = *src;        src ++;        dest ++;    }    *dest = '\0';    return p;}
注意下面几点:

1,把第二个参数设置为const,防止对它进行修改。

2,设置断言。

3,返回目标地址,方便进行连续赋值。


三,strcat()

char *strcat(char *dest, const char *src)  {    assert(dest != NULL && src != NULL);    char *p = dest;    while(*dest != '\0'){        dest ++;    }    while(*src != '\0'){        *dest = *src;        src ++;        dest ++;    }    *dest = '\0';    return p;}
 
四,strcmp()

int strcmp(const char *str1, const char *str2){    assert(str1 != NULL && str2 != NULL);    while(*str1 && *str2 && *str1 == *str2){        str1 ++;        str2 ++;    }    if(*str1 > *str2){        return 1;    }    if(*str1 < *str2){        return -1;    }    return 0;}


五,strlen()

int strlen(const char *str){    if(str == NULL){        return 0;    }    char *p = str;    while(*p){        p ++;    }    return p - str;}