【C/C++】字符/字符串函数(2)——由string.h提供

零.导言

        上次,我讲解了strlen strcpy strcat strcmp函数今天我将继续讲解字符/字符串函数中的

strncpy strncat strncmp函数。


一.strncpy

        strncpy函数和strcpy函数类似,都是用来复制(copy)字符串的函数,区别在于它只会复制前num个字符,num由自己决定,使用方式如下图代码所示:

int main() 
{
    char str[7] = "asdghj";
    char tmp[7] = { 0 };
    strncpy(tmp, str, 3);
    printf("%s", tmp);
    return 0;
}

        运行结果:

        num 大于 tmp 元素个数时:

        内存越界了,于是报错。

        当 num 大于 str 元素个数时:

        

        会在目标后追加'\0',直到总元素数等于num。


二.strncat

         strncat函数和strcat函数类似,都是用来拼接字符串的函数,区别在于它只会拼接前num个字符,num由自己确认,使用方式如下图代码所示:

int main() 
{
    char str[20] = "foufou";
    char tmp[20] = "ALICE";
    strncat(tmp, str, 3);
    printf("%s", tmp);
    return 0;
}

        运行结果:

        可以看到确实只把 str 的前3为字符拼接到了 tmp 上,并且是在 tmp'\0' 处进行拼接,并在最后加上 '\0'

        num 大于 str 元素个数时:

        strncpy 不同,strncat 确实不会在目标后面追加'\0',和 num 等于 str 元素个数的情况没有区别。


三.strncmp

        strncmp函数和strcmp函数类似,都是用来比较字符串的函数,区别在于它只会比较前num个字符,num由自己确认,使用方式如下图代码所示:

int main()
{
    char str[20] = "foufou";
    char tmp[6] = "ALICE";
    int ret = strncmp(tmp, str,3);
    printf("%d", ret);
    return 0;
}

        验证:

        此处就只比较了前3个字符。


四.相关链接

        【C/C++】字符/字符串函数(0)(补充)——由ctype.h提供-CSDN博客

        【C/C++】字符/字符串函数(0)——由ctype.h提供-CSDN博客

        【C/C++】字符/字符串函数(1)——由string.h提供-CSDN博客

        【C/C++】字符/字符串函数(3)——由string.h提供-CSDN博客


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值