在C程序中,字符串是一种既特殊又常见的数据类型。它在内存中并不是以我们所理解的“字符串”所存储,而是被分解成一个个字符 结束符(‘\0’)存放起来。字符串有两种表现形式,分别是字符串指针和字符数组。

字符串指针

c语言入门字符串(C语言中的字符串还能这样玩)(1)

字符数组

c语言入门字符串(C语言中的字符串还能这样玩)(2)

注意:字符串是由多个字符以及一个结束符来表示的,如果没有了结束符那么这个就成为字符数组并不是字符串。

然而这上面两个知识点并不是今天我要分享的重点,今天想给大家捋一捋C语言中一些常用的字符串处理函数,掌握以下这些函数,字符串处理基本上不愁了。

c语言入门字符串(C语言中的字符串还能这样玩)(3)

strstr——“捉迷藏满级选手”

strstr的作用是在一个字符串里面寻找一个特定的子串,并把这个子串的地址给你返回。

c语言入门字符串(C语言中的字符串还能这样玩)(4)

示例:

c语言入门字符串(C语言中的字符串还能这样玩)(5)

strlen——“字符串的量尺”

这个函数是我们比较常用的,用于字符串长度的测量,测量结果不包括结束符哦。从man手册中我们发现这个函数还只有运行成功的返回值,没有运行失败的返回值,可能它比较强吧,觉得自己不会失败。

c语言入门字符串(C语言中的字符串还能这样玩)(6)

示例:

c语言入门字符串(C语言中的字符串还能这样玩)(7)

strtok——“字符串界中的电锯狂魔”

所谓电锯狂魔,顾名思义就是用来分割字符串的。这个函数使用的时候要注意第一次使用的时候要给他目标字符串的地址,它切完第一次之后如果还想他继续切割原来的字符串,要把地址改为NULL。这个函数的原理也比较粗暴,它直接在需要切割的地方把字符替换的‘\0’

c语言入门字符串(C语言中的字符串还能这样玩)(8)

示例:

c语言入门字符串(C语言中的字符串还能这样玩)(9)

strcpy——字符串复制小能手

这个函数还有个亲兄弟strncpy,都是用于字符串复制的,不过它的兄弟要更强一些,可以规定复制多少个字节的内容。

c语言入门字符串(C语言中的字符串还能这样玩)(10)

示例:

c语言入门字符串(C语言中的字符串还能这样玩)(11)

strchr——“捉迷藏高级玩家”

和strstr差不多,strchr也是用来查找特定字符串里面的特定字符,不过它可以查找字符串中第一个出现的指定字符,同样地,他也有个兄弟strrchr是找最后一个出现的指定字符。

c语言入门字符串(C语言中的字符串还能这样玩)(12)

strcmp——“找你妹外挂选手”

这个函数其实很一目明了,就是用来比较两个字符串的。两个字符串完全相同返回0,不同返回ascii码差值。

c语言入门字符串(C语言中的字符串还能这样玩)(13)

strcat——“字符串的外科医生”

这个函数是用于字符串拼接的,把一个字符串的头接到另外一个字符串的尾(‘\0’)上。

c语言入门字符串(C语言中的字符串还能这样玩)(14)

示例:

c语言入门字符串(C语言中的字符串还能这样玩)(15)

以上就是一些常用的字符串处理函数,除了这些之外其实还有很多比较好玩的字符串处理函数,感兴趣可以用man手册查查。

度白嵌入式,将持续给大家分享嵌入式知识,有志同道合的朋友可以关注交流~

,