C语言 <string.h>

<string.h> 是 C 语言标准库中的一个重要头文件,它提供了处理 C 字符串的多种功能。本章将详细介绍 <string.h> 中的主要函数及其使用方法。

字符串长度

strlen

strlen 函数用于计算字符串的长度,不包括终止的空字符 \0

函数原型

参数

  • str:指向要计算长度的 C 字符串的指针。

返回值

返回字符串的实际长度,不包括 \0

示例代码

-- -------------------- ---- -------
-------- ---------
-------- ----------

--- ------ -
    ----- ---- ---- - ------- --------
    ------ ------ - ------------
    ----------- ------ -- --- ------ --- ------- --------
    ------ --
-

输出结果

字符串拷贝

strcpy

strcpy 函数用于将一个字符串复制到另一个位置。目标缓冲区必须足够大,以容纳源字符串及其终止符 \0

函数原型

参数

  • dest:目标字符串缓冲区的地址。
  • src:源字符串的地址。

返回值

返回指向目标缓冲区 dest 的指针。

示例代码

-- -------------------- ---- -------
-------- ---------
-------- ----------

--- ------ -
    ---- ---------
    ----- ---- ---- - ------- --------

    ------------ -----
    -------------- ------- ------ ------

    ------ --
-

输出结果

strncpy

strncpy 函数用于将一个字符串复制到另一个位置,但允许指定复制的最大字符数。

函数原型

参数

  • dest:目标字符串缓冲区的地址。
  • src:源字符串的地址。
  • n:最大复制字符数。

返回值

返回指向目标缓冲区 dest 的指针。

示例代码

-- -------------------- ---- -------
-------- ---------
-------- ----------

--- ------ -
    ---- ---------
    ----- ---- ---- - ------- --------

    ------------- ---- --- -- --------
    ------- - ----- -- ------ -- --
    -------------- ------- ------ ------

    ------ --
-

输出结果

字符串拼接

strcat

strcat 函数用于将一个字符串追加到另一个字符串的末尾。

函数原型

参数

  • dest:目标字符串缓冲区的地址。
  • src:源字符串的地址。

返回值

返回指向目标缓冲区 dest 的指针。

示例代码

-- -------------------- ---- -------
-------- ---------
-------- ----------

--- ------ -
    ---- -------- - ------- --
    ----- ---- ---- - ---------

    ------------ -----
    -------------------- ------- ------ ------

    ------ --
-

输出结果

strncat

strncat 函数用于将一个字符串的部分内容追加到另一个字符串的末尾,但允许指定追加的最大字符数。

函数原型

参数

  • dest:目标字符串缓冲区的地址。
  • src:源字符串的地址。
  • n:最大追加字符数。

返回值

返回指向目标缓冲区 dest 的指针。

示例代码

-- -------------------- ---- -------
-------- ---------
-------- ----------

--- ------ -
    ---- -------- - ------- --
    ----- ---- ---- - ---------

    ------------- ---- --- -- --------
    -------------------- ------- ------ ------

    ------ --
-

输出结果

字符串比较

strcmp

strcmp 函数用于比较两个字符串。根据比较结果,返回值可能为负数、零或正数。

函数原型

参数

  • str1:第一个字符串的地址。
  • str2:第二个字符串的地址。

返回值

  • 如果 str1 小于 str2,返回负数。
  • 如果 str1 等于 str2,返回零。
  • 如果 str1 大于 str2,返回正数。

示例代码

-- -------------------- ---- -------
-------- ---------
-------- ----------

--- ------ -
    ----- ---- ----- - --------
    ----- ---- ----- - ---------

    --- ------ - ------------ ------

    -- ------- - -- -
        ---------- -- ---- ---- ------ ----- ------
    - ---- -- ------- -- -- -
        ---------- -- ----- -- ------ ----- ------
    - ---- -
        ---------- -- ------- ---- ------ ----- ------
    -

    ------ --
-

输出结果

strncmp

strncmp 函数用于比较两个字符串的一部分内容,但允许指定比较的最大字符数。

函数原型

参数

  • str1:第一个字符串的地址。
  • str2:第二个字符串的地址。
  • n:最大比较字符数。

返回值

  • 如果 str1 小于 str2,返回负数。
  • 如果 str1 等于 str2,返回零。
  • 如果 str1 大于 str2,返回正数。

示例代码

-- -------------------- ---- -------
-------- ---------
-------- ----------

--- ------ -
    ----- ---- ----- - --------
    ----- ---- ----- - ------------

    --- ------ - ------------- ----- ---

    -- ------- - -- -
        ---------- -- ---- ---- ------ ----- ------
    - ---- -- ------- -- -- -
        ---------- -- ----- -- ------ ----- ------
    - ---- -
        ---------- -- ------- ---- ------ ----- ------
    -

    ------ --
-

输出结果

字符串查找

strstr

strstr 函数用于在一个字符串中查找另一个子字符串首次出现的位置。

函数原型

参数

  • haystack:主字符串的地址。
  • needle:要查找的子字符串的地址。

返回值

  • 如果找到子字符串,返回指向子字符串首次出现位置的指针。
  • 如果未找到,返回 NULL

示例代码

-- -------------------- ---- -------
-------- ---------
-------- ----------

--- ------ -
    ----- ---- --------- - ------- --------
    ----- ---- ------- - --------

    ---- ------- - ---------------- --------

    -- ------- -- ----- -
        ----------------- ----- -- --------- ------- ------ - ----------
    - ---- -
        ----------------- --- -----------
    -

    ------ --
-

输出结果

strchr

strchr 函数用于在一个字符串中查找一个特定字符首次出现的位置。

函数原型

参数

  • str:要搜索的字符串的地址。
  • c:要查找的字符。

返回值

  • 如果找到字符,返回指向该字符首次出现位置的指针。
  • 如果未找到,返回 NULL

示例代码

-- -------------------- ---- -------
-------- ---------
-------- ----------

--- ------ -
    ----- ---- ---- - ------- --------

    ---- ------- - ----------- -----

    -- ------- -- ----- -
        ----------------- ----- -- --------- ------- ------ - -----
    - ---- -
        ----------------- --- -----------
    -

    ------ --
-

输出结果

字符串转换

strtol

strtol 函数用于将字符串转换为长整型数值。

函数原型

参数

  • str:要转换的字符串的地址。
  • endptr:指向字符串中未被转换部分的第一个字符的指针。
  • base:数字基数,通常为 10 或 16。

返回值

返回转换后的长整型数值。

示例代码

-- -------------------- ---- -------
-------- ---------
-------- ----------

--- ------ -
    ----- ---- ---- - --------
    ---- --------

    ---- --- --- - ----------- -------- ----

    -- -------- -- ----- -
        ----------------- ------- ------- -----
    - ---- -
        --------------- -----------
    -

    ------ --
-

输出结果

strtoul

strtoul 函数用于将字符串转换为无符号长整型数值。

函数原型

参数

  • str:要转换的字符串的地址。
  • endptr:指向字符串中未被转换部分的第一个字符的指针。
  • base:数字基数,通常为 10 或 16。

返回值

返回转换后的无符号长整型数值。

示例代码

-- -------------------- ---- -------
-------- ---------
-------- ----------

--- ------ -
    ----- ---- ---- - --------
    ---- --------

    -------- ---- --- --- - ------------ -------- ----

    -- -------- -- ----- -
        ----------------- ------- ------- -----
    - ---- -
        --------------- -----------
    -

    ------ --
-

输出结果

以上是 <string.h> 库函数的详细说明和示例代码。通过这些函数,你可以更高效地进行字符串处理操作。

上一篇: C语言 <stdlib.h>
下一篇: C语言 <time.h>
纠错
反馈