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

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

八.strncmp

运用场景:


九.strncat

PS:与strcmp对比,解决了无法自己追加自己的问题

特性:

  •  strncat追加的字符串后面还是有\0
  • 追加的个数n,不包含\0


一:情景: "自己追加自己"可行

原理:

strncat追加的字符串后面还是有\0,---解决了\0被覆盖从而无法读取的情况


运用场景:


十.strstr(在一个字符串中查找另一个字符串是否存在)

返回值的情况:

  • 存在:返回子串第一次出现的位置
  • 不存在: 返回NULL

使用场景:

1.模拟实现strstr

原理:分别设置两个比对指针s1,s2,设置一个指针p记录开始匹配的位置

代码实现:

十一.strtok(字符串分解为数组字符串)

PS: str 为待分解字符串,delim 为分隔符(也为字符串


综述:

返回值:


该函数返回被分解的第一个子字符串

如果没有可检索的字符串,则返回一个空指针(str!NULL即可控制循环)

使用要点:

存储分割符的字符串p,分割一次后会自动跳到下一个字符

strtok有记忆功能,会记住他改变的地址

第一次如果传回非空,则第二次一定要传回NULL!!!!!!!!!!!!!

(第一次传入非空,将会从str中找到第一个分隔符处的位置,并记忆;第二次传入NULL,是为了确保函数从第一次操作中记忆的位置再次开始运行,寻找下一个标记)

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<ctype.h>
#include<string.h>
int main()
{
  char arr[] = "yy@qq.com";
  char buf[200] = { 0 };
  strcpy(buf, arr);
  const char* p = "@.";
  char* str = NULL;
    //第一次传入buf为非空,则接下来在此循环一定要传入NULL
  for (str = strtok(buf, p); str != NULL; str = strtok(NULL, p))
  {
    printf("%s\n", str);
  }
  return 0;
}
输出结果:
yy
qq
com

十二.strerror(翻译错误码)

 

错误码:0,1,2,3,4(C语言中库函数报错时的错误码

功能:接收错误码并把错误码转换成错误信息 

PS:errno是c语言提供的全局的错误变量,当调用时,错误码就会存进去

应用场景:


十三.perror(显示函数错误原因)

要点:

  • 相当于printf与strerror的结合
  • 可以加入自定义内容
  • 使用场景:


十四.字符分类函数


1.字符分类函数的头文件

#include<ctype.h>

2.字符分类函数总览


一.演示用例:isdigit函数(判断是否为数字字符)

返回值:非数字字符返回0;数字字符返回非0;

使用场景:


十五.字符转化函数(大小写英文字符转换)

1.字符转化函数的头文件

#include<ctype.h>

2.字符转化函数总览

返回值:

  • toupper;返回转换后的大写字母,若不须转换则将参数c值返回
  • tolower;返回转换后的小写字母,若不须转换则将参数c值返回

运用场景:

一: 运用场景:把字符串中的小写转成大写

int main()
{
  char arr[] = "Hello";
  char* p = arr;
  while (*p++)
  {
  //把所有字符先变成小写,再变成大写
  if (islower(*p))
  {
    *p = toupper(*p);
  }
  }
  printf("%s", arr);
  return 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++
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函数呢?