当前位置: 首页 > news >正文

字符函数和字符串函数(一)

有任何不懂的问题可以评论区留言,能力范围内都会一一回答

本章未将宏和函数详细区分,所有的宏均称为函数,不影响前期学习

后面会专门出一期关于宏的

1.字符分类函数
C语言中有一系列的函数是专门做字符分类的,也就是一个字符是属于什么类型的字符的。这些函数使用都需要包含一个头文件是#include<ctype.h>

如果是真返回非0值,如果为假返回0.

 2.字符转换函数

C语言提供了两个字符转换函数:

int tolower(int c);//将参数传进去的大写字母转小写
int toupper(int c);//将参数传进去的小写字母转大写

3.字符输入输出函数

像printf和scanf一样c语言也有专门处理字符输入输出的函数

这两个函数是getchar和putchar

getchar 的用法

功能 :
 getchar  用于从标准输入(通常是键盘)读取一个字符。
它会等待用户输入一个字符并按回车键确认。
读取的字符是 ASCII 编码的整数值。
语法 :
 int getchar(void); 
返回值 :
正常情况下,返回用户输入的字符的 ASCII 码值。
如果遇到文件结束符(EOF,通常由 Ctrl+Z 或 Ctrl+D 触发),则返回 EOF(即 -1)。

putchar 的用法

功能 :
 putchar  用于向标准输出(通常是终端或控制台)打印一个字符。
语法 :
 int putchar(int character); 
参数 :
 character  是要打印的字符的 ASCII 码值。
返回值 :
成功时返回打印字符的 ASCII 码值。
失败时返回 EOF(即 -1)。

缓冲区影响 :
 getchar  每次读取一个字符,如果用户输入多个字符,其余字符会保留在缓冲区中,供后续  getchar  调用读取。
这意味着,除非用户输入回车,否则  getchar  不会停止读取。
文件结束符 :
在输入流中遇到文件结束符(EOF)时, getchar  会立即停止并返回 EOF。

由上我们可以写一串代码来对字符串进行输入输出 

#define _CRT_SECURE_NO_WARNING
#include <stdio.h>
int main(void)
{
	char a;
	while ((a=getchar())!='#')
	{
		putchar(a);
	}
	return 0;
}

4.字符串输入输出函数

 这两个函数是gets和puts

gets函数

 gets 是一个C标准库函数,用于从标准输入设备(通常是键盘)读取一行字符串,并将换行符存储在缓冲区中。其声明如下:

char *gets(char *str);

参数 str 是一个指向字符串的指针,用于存储读取的字符串。 gets 函数会一直读取,直到遇到换行符为止,并在读取后自动添加一个NULL字符。

puts函数

 puts 也是一个C标准库函数,用于打印一个字符串,并在字符串末尾自动添加一个换行符。其声明如下:

int puts(const char *str);

参数 str 是一个常量字符串指针,指向要打印的字符串。

这个地方我们直接上一段代码方便大家理解其用法

#define _CRT_SECURE_NO_WARNING
#include <stdio.h>
int main(void)
{
	char arr[10];
	gets(arr);
	puts(arr);
	puts("hello world");
	return 0;
}
5,以学过的字符和字符串函数

最后我们回顾一下以前学过的字符串函数

(1)strcmp

strcmp比较的不是字符串的长度而是对应字符的大小

strcmp函数的头文件是#include <string.h>

函数定义 :int strcmp(const char *str1, const char *str2);
这里的 const char* 表示两个参数 str1 和 str2 都是指向字符的指针,并且这些字符都以空字符'\0'结尾。(\0的ASCII码值是0)

函数功能 :
strcmp函数会从两个字符串的首地址开始,逐个比较它们对应位置的字符的ASCII码值,直到遇到不同的字符或者其中一个字符串结束。如果 str1 小于 str2 ,则函数返回一个负值;如果两个字符串相同,函数返回0;如果 str1 大于 str2 ,则函数返回一个正值。

(2)strlen

strlen

1.strlen是库函数

2.strlen是求字符串长度的,统计的是\0之前的字符个数

3.关注内存中是否有\0,如果没有\0,就会持续往后找,可能会越界

4.该函数的返回值是size_t,是无符号的

5.strlen函数需要有头文件#include<string.h>


 

相关文章:

  • 如何优雅的薅羊毛之Flux.1免费使用还支持中文prompt
  • Git使用方法(二)---常用命令-半小时学会git
  • Vue3项目-Electron构建桌面应用程序
  • 【软件造价咨询】软件造价之全国各省市功能点单价分析
  • mongodb分片集群搭建
  • 【YOLO】常用脚本
  • A1095 Cars on Campus (30)
  • SDL 锁屏视频卡死bug原因
  • 线程的控制
  • 10 个 C# 关键字和功能
  • 网络编程——基于TCP的自动同步云服务器
  • LVS配置
  • 数据捕手:Python 爬虫在社交媒体的深度探索
  • Eureka高可用性配置:如何实现Eureka集群与故障转移
  • 构建Docker镜像时,遇到从`deb.debian.org`下载软件包速度很慢
  • 【Qt】常用控件QPushButton
  • 1.Linux_常识
  • LLMs之Llama Coder:llama-coder的简介、安装和使用方法、案例应用之详细攻略
  • B站搜索建库架构优化实践
  • 数据分析面试常见50个问题及解答要点
  • 媒体:不能让追求升学率,成为高中不双休的借口
  • 巴基斯坦宣布禁止与印度的进口贸易
  • 人民日报:上海“模速空间”何以汇聚超百家大模型企业
  • 5月人文社科中文原创好书榜|巫蛊:中国文化的历史暗流
  • 当农民跨进流动的世界|劳动者的书信①
  • 两部门预拨4000万元支持山西、广西、陕西做好抗旱救灾工作