字符串相关处理函数

本文详细介绍了C语言中用于字符串操作的三个核心函数:strcpy用于字符串拷贝,strcat用于字符串连接,而strcmp和strncmp则用于字符串比较。文章深入探讨了这些函数的工作原理、使用注意事项及常见错误避免策略。
摘要由CSDN通过智能技术生成

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指向的字符串小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值