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

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

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

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

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>


 

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值