亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

掌握 C 中的字符指针和函数用法

C 中的字符指针是什么?

一个字符指针 存储字符类型的地址或字符数组(字符串)的第一个字符的地址。当您操作字符串时,字符指针非常有用。

C 中没有字符串数据类型。“char”类型的数组被视为字符串。因此,char类型数组的指针代表一个字符串。然后可以将该字符指针作为参数传递给用于处理字符串的函数。

声明字符指针

字符指针指向字符或字符数组。因此,要声明字符指针,请使用以下语法:

<前>01

初始化字符指针

声明字符指针后,需要使用字符变量的地址对其进行初始化。如果有字符数组,您可以简单地通过提供字符数组的名称或其第一个元素的地址来初始化字符指针。

字符的字符指针

以下是初始化字符类型的字符指针的语法:

<前>10

字符数组的字符指针

以下是初始化字符数组(字符串)的字符指针的语法:

<前>28

字符指针示例

在下面的示例中,我们有两个变量字符和字符数组。我们使用两个指针变量来存储字符和字符数组的地址,然后使用字符指针打印变量的值。

<前>32

输出

运行代码并检查其输出 -

<前>40

理解字符指针

字符串被声明为数组,如下所示 -

<前>58

该字符串是一个以 NULL 结尾的字符数组。上述数组中的最后一个元素是 NULL 字符 (\0)。

声明一个 char 类型的指针,并为其指定第 0 个位置的字符的地址 -

<前>61

请记住,数组本身的名称是第 0 个元素的地址。

<前>73

可以使用指针而不是数组变量(无方括号)来声明字符串。

<前>80

这使得字符串被存储在内存中,并且其地址存储在 ptr 中。我们可以通过递增ptr来遍历字符串。

<前>90

访问字符数组

如果使用 %s 格式说明符打印字符数组,则可以使用字符指针的名称来完成。但如果要访问字符数组的每个字符,则必须在字符指针名称前使用星号 (*),然后递增。

示例

这是完整的程序代码 -

<前>107

输出

运行代码并检查其输出 -

<前>115

示例

或者,将 ptr 以 %s 格式传递给 printf() 以打印字符串。

<前>120

输出

运行此代码时,您将得到相同的输出 -

<前>134

字符指针函数

“string.h”头文件定义了许多执行字符串处理的库函数,例如查找字符串的长度、复制字符串以及比较两个字符串。这些函数使用 char 指针参数。

strlen() 函数

strlen() 函数返回长度,即字符串中的字符数。 strlen()函数的原型如下 -

<前>147

示例 1

下面的代码展示了如何打印字符串的长度 -

<前>159

当您运行此代码时,它将产生以下输出 -

<前>166

示例 2

实际上,strlen() 函数根据用户定义的函数 str_len() 计算字符串长度,如下所示 -

<前>179

当您运行此代码时,它将产生以下输出 -

<前>186

strcpy() 函数

赋值运算符 ( =) 不用于将字符串值分配给字符串变量(即 char 指针)。相反,我们需要使用带有以下原型的 strcpy() 函数 -

<前>197

示例 1

以下示例展示了如何使用 strcpy() 函数 -

<前>202

strcpy() 函数返回指向目标字符串 ptr1 的指针。

<前>210

示例 2

在内部,strcpy() 函数在用户定义的 str_cpy() 函数中实现了以下逻辑 -

<前>229

当你运行他的代码时,它将产生以下输出 -

<前>238

该函数将源字符串中的每个字符复制到目标字符串,直到到达 NULL 字符“\0”。循环结束后,它会在目标数组末尾添加一个“\0”字符。

strcmp() 函数

不允许使用常用的比较运算符(<、>、<=、>=、==和 !=)来比较两个字符串。相反,我们需要使用“string.h”头文件中的 strcmp() 函数。该函数的原型如下 -

<前>242

strcmp() 函数有三个可能的返回值 -

示例 1

以下示例演示了如何在 C 程序中使用 strcmp() 函数 -

<前>251

运行代码并检查其输出 -

<前>266

将 s1 更改为 BACK 并再次运行代码。现在,您将得到以下输出 -

<前>270

示例 2

您可以使用用户定义的函数 str_cmp() 获得类似的结果,如以下代码所示 -

<前>284

当您运行此代码时,它将产生以下输出 -

<前>296

str_cmp() 函数比较字符串中同一索引处的字符,直到任一字符串中的字符用完或字符相等。

当检测到同一索引处的不相等字符时,返回它们的 ASCII 值的差异。循环终止时返回“0”。


C语言

  1. C# - 事件
  2. 如何在 C 中为 Windows PC 下载和安装 GCC 编译器
  3. C#中的序列化和反序列化示例
  4. C++ 内存管理:新建和删除
  5. C++ 编程默认参数(参数)
  6. C# - 常量和文字
  7. C - 命令行参数
  8. C# 和 .Net 版本历史
  9. 如何在 Windows 中下载和安装 Visual Studio for C#
  10. C++ 概述
  11. C++ 中的命名空间
  12. C++ 数据类型