您的位置:

string.h的常见函数及其使用

一、strcpy和strncpy

1、strcpy函数的作用是将一个字符串复制到另一个字符串中(包括'\0'),并返回目标字符串。它的原型如下:

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

参数:dest -- 要复制到的目标字符串;src -- 要复制的源字符串。

2、示例代码:

    char str1[] = "Hello world!";
    char str2[100];
    strcpy(str2, str1);
    printf("str2: %s", str2);
    // 输出结果是:str2: Hello world!

3、strncpy函数和strcpy函数类似,不过它指定了要复制的字符数目。如果源字符串长度小于复制长度,目标字符串就用'\0'补齐。它的原型如下:

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

参数:dest -- 要复制到的目标字符串;src -- 要复制的源字符串;n -- 要复制的字符数目。

4、示例代码:

    char str1[] = "Hello world!";
    char str2[100];
    strncpy(str2, str1, 5);
    printf("str2: %s", str2);
    // 输出结果是:str2: Hello

二、strcat和strncat

1、strcat函数的作用是将一个字符串追加到另一个字符串的末尾(包括'\0'),并返回目标字符串。它的原型如下:

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

参数:dest -- 要追加到的目标字符串;src -- 要追加的源字符串。

2、示例代码:

    char str1[100] = "Hello ";
    char str2[] = "world!";
    strcat(str1, str2);
    printf("str1: %s", str1);
    // 输出结果是:str1: Hello world!

3、strncat函数和strcat函数类似,不过它指定了要追加的字符数目。如果源字符串长度小于追加长度,目标字符串就用'\0'补齐。它的原型如下:

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

参数:dest -- 要追加到的目标字符串;src -- 要追加的源字符串;n -- 要追加的字符数目。

4、示例代码:

    char str1[100] = "Hello ";
    char str2[] = "world!";
    strncat(str1, str2, 3);
    printf("str1: %s", str1);
    // 输出结果是:str1: Hello wor

三、strcmp和strncmp

1、strcmp函数的作用是比较两个字符串。如果两个字符串相等,返回0;如果第一个字符串小于第二个字符串,返回负数;如果第一个字符串大于第二个字符串,返回正数。它的原型如下:

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

参数:s1 -- 要比较的第一个字符串;s2 -- 要比较的第二个字符串。

2、示例代码:

    char str1[] = "Hello";
    char str2[] = "World";
    int result = strcmp(str1, str2);
    printf("result: %d", result);
    // 输出结果是:result: -15

3、strncmp函数和strcmp函数类似,不过它指定了要比较的字符数目。它的原型如下:

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

参数:s1 -- 要比较的第一个字符串;s2 -- 要比较的第二个字符串;n -- 要比较的字符数目。

4、示例代码:

    char str1[] = "Hello";
    char str2[] = "World";
    int result = strncmp(str1, str2, 3);
    printf("result: %d", result);
    // 输出结果是:result: 0

四、strlen

1、strlen函数的作用是返回字符串的长度(不包括'\0')。它的原型如下:

    size_t strlen(const char *s);

参数:s -- 要计算长度的字符串。

2、示例代码:

    char str[] = "Hello world!";
    size_t length = strlen(str);
    printf("length: %lu", length);
    // 输出结果是:length: 12

五、strstr

1、strstr函数的作用是在一个字符串中查找另一个子字符串第一次出现的位置,并返回该位置的指针。如果未找到子字符串,返回NULL。它的原型如下:

    char *strstr(const char *haystack, const char *needle);

参数:haystack -- 要搜索的字符串;needle -- 要搜索的子字符串。

2、示例代码:

    char str1[] = "Hello world!";
    char str2[] = "world";
    char *result = strstr(str1, str2);
    if(result){
        printf("result: %s", result);
    } else {
        printf("not found");
    }
    // 输出结果是:result: world!

六、memset

1、memset函数的作用是将一块内存区域设置为给定的值。它的原型如下:

    void *memset(void *s, int c, size_t n);

参数:s -- 要设置的内存区域;c -- 要设置的值(用无符号字符表示);n -- 要设置的字节数。

2、示例代码:

    char str[100] = "hello";
    memset(str, 'A', 3);
    printf("str: %s", str);
    // 输出结果是:str: AAAllo

七、memcpy

1、memcpy函数的作用是将一个内存区域复制到另一个内存区域,它的原型如下:

    void *memcpy(void *dest, const void *src, size_t n);

参数:dest -- 目标内存区域;src -- 要复制的源内存区域;n -- 要复制的字节数。

2、示例代码:

    char str1[] = "Hello";
    char str2[100];
    memcpy(str2, str1, 3);
    printf("str2: %s", str2);
    // 输出结果是:str2: Hel

八、总结

1、string.h库是C语言的标准库之一,包含了许多常用的字符串处理函数。

2、复制字符串的函数有strcpy和strncpy,追加字符串的函数有strcat和strncat,比较字符串的函数有strcmp和strncmp,计算字符串长度的函数有strlen,查找子字符串的函数有strstr,初始化内存的函数有memset,复制内存区域的函数有memcpy。

3、这些函数可以方便地处理字符串,并在C语言的开发中发挥重要的作用。