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

字符函数 和 字符串函数

今天我打算介绍一些字符函数和字符串函数,有一些字符串函数我实现了模拟,但文章中没有放出来,如果需要的欢迎来到我的gitee里面拿取(在test.c11-23里面)

这是我的gitee:小汐 (lhysxx) - Gitee.com


字符函数

1. islower

判断是否是小写字母

跳转网站

islower - C++ Reference

注意事项:

  1. int islower(int c)

函数返回类型:int

这里返回的是 0 和 非0 的数(0代表输入的不是小写字母,非0代表输入的是小写字母)

函数参数类型:int

     2. 参数c

可以输入的是字符(字符的本质也是数字)

要检查的字符会被强制转换为 int 或 EOF

   3.头文件:

    <ctype.h>


代码举例

#include<stdio.h>
#include<ctype.h>
int main()
{
	printf("%d\n", islower('A'));
	printf("%d\n", islower('a'));
	return 0;
}

打印结果:


2. isupper

判断是否是大写字母

跳转网站

isupper - C++ Reference

注意事项:

  1. int islower(int c)

函数返回类型:int

这里返回的是 0 和 非0 的数(0代表输入的不 是大写字母,非0代表输入的是大写字母)

函数参数类型:int

     2. 参数c

可以输入的是字符(字符的本质也是数字)

要检查的字符会被强制转换为 int 或 EOF

   3.头文件:

    <ctype.h>


代码举例

#include<stdio.h>
#include<ctype.h>
int main()
{
	printf("%d\n", isupper('A'));
	printf("%d\n", isupper('a'));
	return 0;
}

运行结果:


3. isprint

判断是否是可打印字符(ASCLL码值在0~31之间是不可见的)

跳转网站

isprint - C++ Reference

注意事项:

  1. int isprint(int c)

函数返回类型:int

这里返回的是 0 和 非0 的数(0代表输入的不 是可见字符,非0代表输入的是可见字符)

函数参数类型:int

    2. 参数c

可以输入的是字符(字符的本质也是数字)

要检查的字符会被强制转换为 int 或 EOF

  3. 头文件:

    <ctype.h>


代码举例

#include<stdio.h>
#include<ctype.h>
int main()
{
	printf("%d\n", isprint('\0'));
	printf("%d\n", isprint('a'));
	return 0;
}

运行结果:


4. isdigit

判断是否是’0‘ — ’9‘的字符

跳转网站

isdigit - C++ Reference

注意事项:

  1. int isdigit(int c)

函数返回类型:int

这里返回的是 0 和 非0 的数(0代表输入的不 是数字字符,非0代表输入的是数字字符)

函数参数类型:int

    2.参数c

可以输入的是字符(字符的本质也是数字)

要检查的字符会被强制转换为 int 或 EOF

   3.头文件:

   <ctype.h>


代码举例

#include<stdio.h>
#include<ctype.h>
int main()
{
	printf("%d\n", isdigit('0'));
	printf("%d\n", isdigit('a'));
	return 0;
}

运行结果:


5. isspace

判断输入的是否是空白字符(包括'   ',' \f'‘ \v ' \n ' , ' \r ', ' \t ')

跳转网站

isspace - C++ Reference

注意事项:

  1. int isspace(int c)

函数返回类型:int

这里返回的是 0 和 非0 的数(0代表输入的不 是空白字符,非0代表输入的是空白字符)

函数参数类型:int

     2.参数c

可以输入的是字符(字符的本质也是数字)

要检查的字符会被强制转换为 int 或 EOF

    3.头文件:

   <ctype.h>


代码举例

#include<stdio.h>
#include<ctype.h>
int main()
{
	printf("%d\n", isspace(' '));
	printf("%d\n", isspace('a'));
	return 0;
}

运行结果:


6. toupper

把小写字母变成大写字母

跳转网站

toupper - C++ Reference

注意事项:

  1. int toupper(int c)

函数的返回类型: int ,函数的参数类型: int

返回的是大写字母的ASCLL码值

    2. 参数c
可以输入的是字符(字符的本质也是数字)

   3.头文件:

    <ctype.h>

代码举例

#include<stdio.h>
#include<ctype.h>
int main()
{
	printf("%d\n", toupper('a'));
	printf("%c\n", toupper('a'));
	return 0;
}

运行结果:


7. tolower

把大写字母变成小写字母

跳转网站

tolower - C++ Reference

注意事项:

  1. int toupper(int c)

函数的返回类型: int ,函数的参数类型: int

返回的是小写字母的ASCLL码值

     2. 参数c
可以输入的是字符(字符的本质也是数字)

    3. 头文件:

    <ctype.h>

代码举例

#include<stdio.h>
#include<ctype.h>
int main()
{
	printf("%d\n", tolower('A'));
	printf("%c\n", tolower('A'));
	return 0;
}

运行结果:


字符串函数

1. strlen

计算字符串的长度

跳转网站

strlen - C++ Reference

注意事项:

  1. size_t strlen ( const char * str )

函数返回类型:size_t (字符串的长度不可能为负数)

返回的值就是字符串的长度

函数参数类型: const char *

这里说明地址所指向的内容是不可以更改的

   2. 参数str:

传过来的是需要计算的字符串的首地址

  3. 头文件:

   <string.h>


代码举例

#include<stdio.h>
#include<string.h>
int main()
{
	char ch[30] = "ancd";
	printf("%d ", strlen(ch));
	return 0;
}

运行结果:

数组ch存放的元素的一定要包括'\0' ,否则可能造成越界访问

    4. 实现原理:

拿到某一个地址后,向后找 '\0' ,直到找到为止才会停下来,记录 '\0' 之前的元素个数有多少个

2. strcpy

复制字符串的内容

跳转网站

strcpy - C++ Reference

注意事项:

  1. char * strcpy ( char * destination, const char * source )

函数返回类型 : char * ,参数类型:都是 char *

返回的地址是destination的地址

    2. 参数destination 和 参数source

把source接收的地址所指向的内容复制到destination接收的地址所指向的内容

并且source接收的地址所指向的内容不可以被修改

   3. 头文件

   <string.h>


代码举例

#include<stdio.h>
#include<string.h>
int main()
{
	char ch1[] = "abcdeff";
	char ch2[] = "ab";
	strcpy(ch1,ch2);
	printf("%s", ch1);
	return 0;
}

  4. 实现原理

将一个字符数组的内容拷贝到另一个字符数组的内容里面(包括'\0'),但是需要修改内容的字符数组的内存大小一定不能小于被拷贝字符数组的内存大小

3. strcmp

比较两个字符串的大小(比较的是对应的ASCLL码值)

跳转网站

strcmp - C++ Reference

注意事项:

  1. int strcmp ( const char * str1, const char * str2 )

函数返回类型:int , 函数参数类型:都是 const char *

函数返回的是(大于0,0,小于0的数)

[如果str1所指向的字符串大小大于str2接收的,返回大于0的数;如果str1所指向的字符串大小等于str2接收的,返回0,如果str1所指向的字符串大小小于str2接收的,返回小于0的数]

    2. 参数str1 和 str2

传入的是两个需要比较的字符串的地址

   3. 头文件:

<string.h>


代码举例

#include<stdio.h>
#include<string.h>
int main()
{
	char ch1[] = "abcde";
	char ch2[] = "abcdf";
	printf("%d ", strcmp(ch1, ch2));
	return 0;
}

运行结果:

"abcd"这几个都是一样的,但是'e' 的ASCLL码值小于'f',则返回比0小的数


4. strcat

将一个字符串的内容衔接给到一个字符串内容的后面

跳转网站

strcat - C++ Reference

注意事项:

  1. char * strcat ( char * destination, const char * source )

函数返回类型:char * , 函数参数:都是 char *

返回的是被衔接的字符串的地址

    2. 参数 destination 和 source

把 source 所指向的字符串的内容(包括'\0')衔接到 destination所指向的字符串的内容后面

并且 source 所指向的字符串的内容不可以被修改

   3. 头文件

    <string.h>

代码举例

#include<stdio.h>
#include<string.h>
int main()
{
	char ch1[20] = "hello ";
	char ch2[] = "bit";
	strcat(ch1, ch2);
  printf("%s\n", strcat(ch1, ch2));
	printf("%s\n", ch1);
	return 0;
}

运行结果:


4. 实现原理

找到需要被衔接的字符串的'\0'位置的地址处,并从这里开始,后面的内容全部改成需要被复制的字符串的内容(包括'\0'),并且被衔接的字符数组空间一定要大


http://www.kler.cn/a/155054.html

相关文章:

  • JAVA毕业设计210—基于Java+Springboot+vue3的中国历史文化街区管理系统(源代码+数据库)
  • 电路研究9.1.1——合宙 Air780EP 模组外围线路
  • 【Java】常用工具类方法:树形结构、获取IP、对象拷贝、File相关、雪花算法等
  • 详细介绍:Kubernetes(K8s)的技术架构(核心概念、调度和资源管理、安全性、持续集成与持续部署、网络和服务发现)
  • 为什么redis会开小差?Redis 频繁异常的深度剖析与解决方案
  • LAYA3.0 组件装饰器说明
  • asp.net core webpi 结合jwt实现登录鉴权
  • 金额到底应该用什么类型存储?
  • 基于单片机的多功能视力保护器(论文+源码)
  • SmartSoftHelp8,服务器,目标端口安全扫描工具
  • 单页面应用
  • 阅读软件OmniReader Pro mac功能特色
  • PostgreSQL对比Mysql
  • OpenSSL 使用AES对文件加解密
  • SQL Server对象类型(8)——4.8.约束(Constraint)
  • 五子棋AI算法自动测试方法
  • 6.7 Windows驱动开发:内核枚举LoadImage映像回调
  • “SRP模型+”多技术融合在生态环境脆弱性评价模型构建、时空格局演变分析与RSEI 指数的生态质量评价及拓展
  • 计算机网络TCP篇②
  • 力扣题:字符的统计-12.2
  • C#-串口通信入门及进阶扩展
  • linux的ping命令
  • vue 生命周期
  • 461. 汉明距离
  • TCP三次握手与四次挥手
  • 爬虫-xpath篇