【C】字符串函数——大全(简洁,精炼,初学者)(一)

简介: 【C】字符串函数——大全(简洁,精炼,初学者)

一.C语言对字符和字符串的处理

C语言中对字符和字符串的处理很是频繁,但是C语言本身并没有字符串类型,字符串通常放在常量字符串或者字符数组中。

PS:字符串常量适用于那些对它不做修改的字符串函数

常量字符串:

"hello my friend! \0"//默认后面会有\0

字符数组:

char arr[]="welcome to my blog! \0";//默认后面会有\0

1.字符串函数的头文件

#include<string.h>

二.strlen(字符长度函数)

image.png

特性:

  • strlen的返回类型是unsigned int
  • 无符号数-无符号数还是无符号数

使用场景:

image.png

1.模拟实现strlen

原理:指针-指针

注意点:const修饰的指针到另一个指针时,也应该受保护(+const)

image.png

三.strcpy(字符拷贝函数)

image.png

注意:返回类型为char*打印时可以接受其返回值

image.png

使用场景:

image.png

1.strcpy的2种特性


一.strcpy会拷贝"\0"

如果不拷贝\0会报错(越界)

image.png

二.能越界访问,但报错

虽然能成功拷贝,但仍然会报错(要保证目标空间足够大·)

image.png

2.场景:拷贝放到常量字符串

前提条件:(目标指针指向的空间必须可修改

image.png

3.模拟实现strcpy

原理:逐个改变目的地的地址,即指针(地址)覆盖image.png

四.stract(字符追加函数)

PS:与strcpy类似,参数部分都是前目的地后源

使用场景:

特性:

  • 追加字符串时,源字符串必须有\0
  • 会覆盖待追加代码的\0(从第一个\0处开始追加)

1.模拟实现strcat

比模拟实现strcpy多了一步:设置cur指针,重新找拼接的头指针(覆盖掉源代码的\0)

2.(特性实例)情景1:能否实现自己追加自己?NO

分析:

  • stract的特性之一就是会覆盖待追加代码的"\0"


五.strcmp(字符比较函数)

注意点:

  • 比较对应位置上字符的Ascall值的大小
  • 一定要有‘\0’,即终止符号
  • 与字符串的长短无关 !!!!!!!!!!!!

使用场景:

1.模拟实现strcmp

原理:逐字符比较

image.png

六.strcpy,strcmp,strcat与strncpy,strncmp,strncat比较

直观区别:


长度受限制的字符串函数

长度不受限制的字符串函数

PS:strncpy,strncat不仅是长度受限与否的区别,还有特性上的区别  

七.strncpy

应用场景:


一:情景:strncpy遇到过分拷贝时的运作

strncpy特性:不够拷贝的部分,补上" \0"

相关文章
|
1天前
|
存储 编译器 C语言
【C语言】数据类型全解析:编程效率提升的秘诀
在C语言中,合理选择和使用数据类型是编程的关键。通过深入理解基本数据类型和派生数据类型,掌握类型限定符和扩展技巧,可以编写出高效、稳定、可维护的代码。无论是在普通应用还是嵌入式系统中,数据类型的合理使用都能显著提升程序的性能和可靠性。
20 8
|
3月前
|
数据处理 开发者 Python
代码之美:探索简洁而强大的Python编程
【8月更文挑战第56天】在编程的世界里,简洁不仅仅是一种风格,它是高效和可维护性的代名词。本文将通过Python编程语言的视角,带领读者领略代码的优雅与力量。我们将从基础语法出发,逐步深入到函数式编程、面向对象设计,以及实用的第三方库使用,揭示如何通过简洁的代码解决复杂问题。准备好让你的思维得到启发,让我们一起走进Python的世界,体验代码之美。
|
6月前
|
存储 Python
牢记python语言基础知识
【6月更文挑战第20天】 `input` & `print` - `print()`支持任意数量的位置参数,默认用空格分隔,可通过`sep`和`end`定制输出。 - 可重定向`print`到文件,如`print(&quot;hello!&quot;, file=f)`。 - `flush=True`确保立即输出,避免大字符串滞后。 ## 2. 基本数据类型 - `str`, `bytes`, `int`, `bool`, `float`, `complex`。 - `bytes`是底层I/O的基础,`sys.stdout.buffer`处理字节输出。
53 5
牢记python语言基础知识
|
7月前
|
Serverless 数据处理 Python
Python函数式编程:理解与实践
Python函数式编程是一种高阶编程范式,它强调函数的纯洁性和不可变性,使得代码更易于理解、维护和扩展。本文将深入探讨Python函数式编程的概念和应用,介绍函数式编程的基本特性、常用函数和实际应用场景,并通过具体案例演示如何使用Python实现函数式编程。
157 6
|
存储 测试技术 C语言
【C】字符串函数——大全(简洁,精炼,初学者)(二)
【C】字符串函数——大全(简洁,精炼,初学者)
|
人工智能 算法 C++
AcWing语法基础课笔记 第八章 C++ STL 第九章 位运算与常用库函数
STL是提高C++编写效率的一个利器。 ——闫学灿
139 0
|
C语言 C++
0基础C语言自学教程——第十节 字符串函数
源字符串必须以&#39;\0&#39;结束。 会将源字符串中的&#39;\0&#39;拷贝到目标空间。 目标空间必须足够大,以确保能存放源字符串。 目标空间必须可变。
170 0
0基础C语言自学教程——第十节 字符串函数
|
缓存 安全 程序员
如何写一个更好的Python函数?
如何写一个更好的Python函数?
147 5
|
安全 测试技术 数据库连接
如何写一个更好的Python函数?(下)
Python虽然好用,但用好真的很难。 尤其是函数部分,只要写不好,后面的一连串人都会遭殃。 看又看不懂,测试起来也麻烦,维护又维护不动,真是让人头疼。 那怎么写好一个Python函数呢?
|
缓存 程序员 测试技术
如何写一个更好的Python函数?(上)
Python虽然好用,但用好真的很难。 尤其是函数部分,只要写不好,后面的一连串人都会遭殃。 看又看不懂,测试起来也麻烦,维护又维护不动,真是让人头疼。 那怎么写好一个Python函数呢?