再学C语言49:C库中的字符串函数

C库提供了很多处理字符串的函数;ANSI C用头文件 string.h 给出这些函数的原型

一、strlen()函数

功能:计算并返回字符串长度

示例代码:

/* test strlen() function */
#include <stdio.h>
#include <string.h>

int main(void)
{
    char arr[] = "good morning!";
    int cnt;

    cnt = strlen(arr);

    printf("length of \"%s\" is %d\n", arr, cnt);

    return 0;
}

运行结果:

ab4b6ef012b44a6c89495964b662c53c.png

二、strcat()函数

功能:接受两个字符串参数,将第二个字符串的一份拷贝添加到第一个字符串的结尾,使第一个字符串成为一个新的组合字符串,不改变第二个字符串

strcat()函数时char *(指向char的指针)类型,函数返回其第一个参数的值,即其后添加了第二个字符串的那个字符串中的第一个字符的地址

示例代码:

/* test of strcat() function */
#include <stdio.h>
#include <string.h>

int main(void)
{
    char arr1[100] = "good morning,"; // arr1的空间必须足够容纳添加了arr2之后的字符串长度
                                      // 否则数据会溢出
    char arr2[] = "good afternoon, and good night!";

    printf("%s\n", arr1);
    strcat(arr1, arr2);
    printf("%s\n", arr1);

    return 0;
}

运行结果:

ec911562beef4a628a6e67787b3148c7.png

三、strncat()函数

与strcat()函数功能类似,区别:

1)strcat()函数并不检查第一个数组是否能够容纳第二个字符串;如果没有给第一个数组分配足够的空间,多出来的字符会溢出到相邻的存储单元;需要将空字符考虑在内

2)strncat()函数比strcat()函数多一个参数,用于指明最多允许添加的字符的数目;需要将空字符考虑在内;到参数上限或遇到空字符(以二者中先符合的那个为准)则终止添加过程

示例代码:

/* test of strncat() function */
#include <stdio.h>
#include <string.h>

int main(void)
{
    char arr1[100] = "get busy living ";
    char arr2[] = "or get busy dying.";
    strncat(arr1, arr2, 2); // 第一次运行strncat()函数
    printf("%s\n", arr1); // 打印
    strncat(arr1, arr2, 20); // 第二次运行strncat()函数时,arr的内容已经改变了
    printf("%s\n", arr1); // 打印

    return 0;
}

运行结果:

f99c3eabec6d46808de30149b49fcc2a.png

注意:每运行一次strcat()函数或strncat()函数,第一个参数数组内的内容会被改变

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Forster-C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值