字符串相关处理函数

来源:互联网 发布:2am 2pm 知乎 编辑:程序博客网 时间:2024/04/26 18:38

1. strcpy: --拷贝

包含库:

    #include <string.h>

函数原型:

    char *strcpy(char *dest, const char *src);  

        --将src指向的字符串拷贝到dest指向的空间,拷贝过程中包括拷贝src中的‘\0’    --向前拷

    char *strncpy(char *dest, const char *src, size_t n);

        --将src指向的n个字节的字符拷贝到dest指向的空间,拷贝过程中不特意添加‘\0’

参数:

    dest,目的

    src,源

    n,源中的n各字节

返回值:

    目的字符串 dest 的指针

例子:

   

一个简单的strcpy的实现:


char * strncpy(char *dest, const char *src, size_t n){     size_t i;     for (i = 0; i < n && src[i] != '\0'; i++)         dest[i] = src[i];     for ( ; i < n; i++)         dest[i] = '\0';     return dest;}
 

  对于 strncpy 当前n个字符中没有\0字符串结束符的解决办法是

        strncpy(buf, str, n);

        if (n > 0)

            buf[n - 1]= '\0';

注意:目标数组的大小一定要足够大,否则,内存出现问题。

2. strcat: --连接

包含的库:

    #include <string.h>

函数原型:

    char *strcat(char *dest, const char *src);

         --将src链接到dest后边,结果是 dest+src 。连接方式是

            从覆盖dest所指向字符串后边的 '\0' 开始。

    char *strncat(char *dest, const char *src, size_t n);

         --dest + 至多n个src里边的字符串,特殊情况是

            当src里边有n个或者多于n个,则src不必一定要以 '\0' 结尾。

参数:

    dest,...

    src,...

    n,src里边至多的个数

返回值:

    目的字符串 dest 的指针

例子:

clipboard[1]

一个简单的strncat的实现:

char * strncat(char *dest, const char *src, size_t n){     size_t dest_len = strlen(dest);     size_t i;     for (i = 0 ; i < n && src[i] != '\0' ; i++)         dest[dest_len + i] = src[i];     dest[dest_len + i] = '\0';         return dest;}

3. strcmp: --比较

包含的库:

    #include <string.h>

函数原型:

     int strcmp(const char *s1, const char *s2);

         --相当于 *s1-*s2 ,所有字符都比较

    int strncmp(const char *s1, const char *s2, size_t n);

         --相当于 *s1-*s2 ,前n个字符比较

参数:

    s1,字符串1

    s2,字符串2

    n,(至多)要比较的个数

返回值:

    >0,s1指向的字符串比s2指向的字符串大

    =0,两个指针指向的字符串完全相同

    <0,s1指向的字符串比s2指向的字符串小

0 0
原创粉丝点击