一、strncpy函数的使用

1.1.strncpy函数

char * strncpy ( char * destination, const char * source, size_t num );

1.2.strncpy函数的作用

      从字符串复制字符。将源字符串的前num个字符复制到目标位置。如果在复制num个字符之前找到源C字符串的结束(由空字符表示),则目标将用零填充,直到总共写入num个字符。
      如果源字符串的长度大于num,则不会在目标末尾隐式追加空字符。因此,在这种情况下,目标不应被视为以空字符结尾的C字符串(将其视为以空字符结尾的字符串会导致溢出)。

1.3.strncpy函数的使用

代码如下(可自行测试):

#include <stdio.h>
#include <string.h>

int main()
{
    char str1[] = "To be or not to be";
    char str2[40];
    char str3[40];
    strncpy(str2, str1, sizeof(str2));
    strncpy(str3, str2, 5);
    str3[5] = '\0'; 

    puts(str1);
    puts(str2);
    puts(str3);

    return 0;
}

二、strncat函数的使用

2.1.strncat函数

char * strncat ( char * destination, const char * source, size_t num );

2.2.strncat函数的作用

从字符串追加字符 将源字符串的前num个字符追加到目标中,并加上一个终止空字符。

2.3.strncat函数的使用

注:执行 strncat(s1, s2, 6): 从 s2 取前 6 个字符:"I'm a "(注意空格也算一个字符) 拼接到 s1 后面: 新的 s1 内容变为:"I'm a studentI'm a \0" 实际上是:"I'm a studentI'm a " + \0

代码如下(可自行测试):

#include<stdio.h>
#include<string.h>
int main() {
    char s1[20] = "I'm a student";
    char s2[20] = "I'm a doctor";
    strncat(s1, s2, 6);
    puts(s1);
    puts(s2);
    return 0;
}

三、strncmp函数的使用

3.1.strncmp函数

int strncmp ( const char * str1, const char * str2, size_t num );

3.2.strncmp函数的作用

     比较两个字符串的字符 比较C字符串str1和C字符串str2的前num个字符。该函数从每个字符串的第一个字符开始比较。如果它们相等,则继续比较后续的字符对,直到字符不同、直到遇到终止空字符,或者直到两个字符串中的num个字符都匹配,以先发生的情况为准。

3.3.strncmp函数的使用

代码如下(可自行测试):

#include<stdio.h>
#include<string.h>
int main() {
    char s1[20] = "I'm a student";
    char s2[20] = "I'm a doctor";
    int r = strncmp(s1, s2, 10);
    if (r> 0) {
        printf("1\n");
    }
    else if(r< 0){
        printf("-1\n");

    }
    else {
        printf("0\n");

    }
}

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐