库函数——字符串

来源:互联网 发布:Linux check_match 编辑:程序博客网 时间:2024/06/05 20:47

strcat:字符串连接函数

函数原型:char *strcat (char *dest,char *src);

头文件:# include< string.h>

函数功能:将两个字符串连接合并成一个字符串,也就是把字符串src连接到字符串dest后面,连接后的结果放在字符串dest中

返回值:指向字符串dest的指针

char *My_Strcat(char *dest, char *src)//字符串连接函数{    assert(dest != NULL&&src != NULL);    while (*dest!= '\0')    {        dest++;    }    while (*src++ != '\0')    {        *dest++= *src;    }    *(++dest)= '\0';    return dest;}int main(){    char dest[100] = { "hello w" };    char *src = "orld!" ;    My_Strcat(dest,src);    printf("%s", dest);    return 0;}

strchr:字符串中字符首次匹配函数

函数原型:char *strchr(char *str, char c);

头文件:#include< string.h>

函数功能:在字符串中查找给定字符的第一次匹配,也就是在字符串str中查找字符c第一次出现的位置

返回值:第一次匹配位置的指针

const char *My_Strchr(const char *str, char c)//字符串中字符首次匹配函数{    assert(str != NULL);    while (*str != '\0')    {        if (*str == c)        {            return str;        }        str++;    }    return NULL;}int main(){    char dest[100] = { "hello w" };    char *src = "orld!" ;    printf("%c\n",My_Strchr(dest, 'e'));    return 0;}

strnchr

const char *My_Strnchr(const char *str, char c, int n)//查找给定字符,第n次出现的位置{    assert(str != NULL);    while (*str != '\0')    {        if (*str == c)        {            n--;        }        if (n == 0)        {            return str;        }        str++;    }    return NULL;}int main(){    char dest[100] = { "roglo C Program!" };    char *src = "hel" ;    printf("%s\n",My_Strnchr(dest, 'o', 3));    return 0;}

strcmp:字符串比较函数

函数原型:int strcmp (char str1,char str2);

头文件:#include< string.h>

函数功能:比较两个字符串的大小,也就是把字符串str1和字符串str2从首字符开始逐字符的进行比较,直到某个字符不相同或比较到最后一个字符为止,字符的比较为ASIC码的比较

返回值:若字符串str1大于字符串str2返回结果大于零,若字符串str1小于字符串str2返回结果小于零,若字符串str1等于字符串str2返回结果等于零

int My_Strcmp(const char *str1,const char * str2)//字符串比较函数{    assert(str1 != NULL&&str2 != NULL);    int n = 0;    while (*str1 != '\0'&&*str2 != '\0')    {        if (*str1 != *str2)        {            n = *str1 - *str2;            return n;        }        str1++;        str2++;    }    n = *str1 - *str2;    return n;}int main(){    char dest[100] = { "hello w" };    char *src = "hello world!" ;    printf("%d",My_Strcmp(dest, src));    return 0;}

strcpy:字符串拷贝函数

函数原型: char * strcpy (char dest,char src);

头文件:#include< string.h>

函数功能:实现字符串的拷贝工作,也就是把字符串src中的内容拷贝到字符串dest中,使两个字符串的内容相同。

返回值:指向字符串dest的指针

char *My_Strcpy(char *dest, char * src)//字符串拷贝函数{    assert(dest != NULL&&src != NULL);    int i = 0;    while (src[i]!='\0')    {        dest[i] = src[i];        i++;    }    return dest;}int main(){    char dest[100] = { "" };    char *src = "hello world!" ;    printf("%s",My_Strcpy(dest, src));    return 0;}

strlen:计算字符串长度函数

函数原型: int strlen (char *str);

头文件:#include< string.h>

函数功能:求字符串的长度,也就是求字符串str中有多少个字符

返回值:字符串str字符的个数

int My_Strlen(const char *str)//计算字符串长度函数{    assert(str != NULL);    int count = 0;    while (str[count] != '\0')    {        count++;    }    return count;}int main(){    char dest[100] = { "" };    char *src = "hello world!" ;    printf("%d\n", My_Strlen(src));    return 0;}

strncat:字符串连接函数

函数原型:char *strncat (char *dest, char *src, int n);

头文件:#include< string.h>

函数功能:将一个字符串的子串连接到另一个字符串末端,也就是把字符串src
的前n个字符连接到字符串dest后面,连接后的结果放在字符串dest中

返回值:指向字符串dest的指针

char *My_Strncat(char *dest, const char *src, int n)//把src字符串中n个字符连接到dest后{    assert(dest != NULL&&src != NULL);    assert(n >= 0);    while (*dest != '\0')    {        dest++;    }    while (*src != '\0'&&n>=0)    {        *dest++ = *src++;        n--;    }    *(++dest) = '\0';    return dest;}int main(){    char dest[100] = { "" };    char *src = "hello world!" ;    My_Strncat(dest, src, 12);    printf("%s", dest);    return 0;}

strncpy:字符串子串拷贝函数

函数原型: char * strncpy (char dest,cosnt char src, int n);

头文件:#include< string.h>

函数功能:实现字符串子串的拷贝工作,也就是把字符串src中的前n个字符拷贝到字符串dest中。

返回值:指向字符串dest的指针

char *My_Strncpy(char *dest, cosnt char * src, int n)//字符串子串拷贝函数{    assert(dest != NULL&&src != NULL);    assert(n >= 0);    while (*src != '\0'&&n > 0)    {        *dest++ = *src++;        n--;    }    return dest;}int main(){    char dest[100] = { "roglo C Program!" };    char *src = "hel" ;    My_Strncpy(dest, src, 3);    printf("%s", dest);    return 0;}

strncmp:字符串子串比较函数

函数原型: int strncmp (char str1,char str2, int n);

头文件:#include< string.h>

函数功能:比较两个字符串子串的大小,也就是把字符串str1的前n个字符组成的子串和字符串str2的前n个字符组成的子串进行比较,从首字符开始逐字符的进行比较,直到某个字符不相同或比较到第n个字符为止。

返回值:若字符串str1前n个字符组成的子串大于字符串str2前n个字符组成的子串返回结果大于零,若字符串str1前n个字符组成的子串小于字符串str2前n个字符组成的子串返回结果小于零,若字符串str1前n个字符组成的子串等于字符串str2前n个字符组成的子串返回结果等于零

int My_Strncmp(char *str1, char * str2, int n)//字符串子串比较函数{    assert(str1 != NULL&&str2 != NULL);    int s = 0;    while (*str1 != '\0'&&*str2 != '\0'&&n > 0)    {        if (*str1 != *str2)        {            s = *str1 - *str2;            return s;        }        str1++;        str2++;        n--;    }    s = *str1 - *str2;    return s;}int main(){    char dest[100] = { "hello C Program!" };    char *src = "hello world!" ;    printf("%d\n", My_Strncmp(dest, src, 5));    printf("%d\n", My_Strncmp(dest, src, 10));    return 0;}

strrchr:字符串中字符末次匹配函数

函数原型:char *strrchr(char *str, char c);

头文件:#include< string.h>

函数功能:在字符串中查找给定字符的最后一次匹配,也就是在字符串str中查找字符c最后一次出现的位置

返回值:最后一次匹配位置的指针

char *My_Strrchr(char *str, char c)//字符串中字符末次匹配函数{    assert(str != NULL);    int i = 0;    while (str[i] != '\0')    {        i++;    }    while(i >= 0)    {        if (str[i] == c)        {            return str + i;        }        i--;    }    return NULL;}int main(){    char dest[100] = { "hello C Program!" };    char *src = "hello world!" ;    printf("%s\n",My_Strrchr(dest, 'o'));    return 0;}

strstr:字符串匹配函数

函数原型:char *strstr(char *str1, char *str2);

头文件:#include< string.h>

函数功能:在字符串中查找另一个字符串首次出现的位置,也就是在字符串str1中查找第一次出现字符串str2的位置。

返回值:返回第一次匹配字符串的指针

char *My_Strstr(char *str1, char *str2)//字符串匹配函数{    assert(str1 != NULL&&str2 != NULL);    int i = 0;    int j = 0;    while (str1[i] != '\0')    {        while(str1[i] == str2[j])        {            if (str2[j + 1] == '\0')            {                return str1 + i - j;            }            i++;            j++;        }        j = 0;        i++;    }    return NULL;}int main(){    char dest[100] = { "hello C Program!" };    char *src = "rog" ;    printf("%s", My_Strstr(dest, src));    return 0;}

Count_Char

int Count_Char(const char *str, const char *chars)//str中有多少个字符与chars匹配{    assert(str != NULL && chars != NULL);    int count = 0;    int i = 0;    while (str[i] != '\0')    {        int j = 0;        while (chars[j] != '\0')        {            if (chars[j] == str[i])            {                count++;            }            j++;        }        i++;    }    return count;}int main(){    char dest[100] = { "roglo C Program!" };    char *src = "hello" ;    printf("%d\n",Count_Char(dest, src));    return 0;}
原创粉丝点击