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

【字符函数和字符串函数】

【字符函数和字符串函数】

  • 字符分类函数
  • 字符转换函数
  • 函数的使用
  • strcpy的使用
  • strcat的实现
  • strcmp的实现
  • strncpy,strncat,strncmp
  • strstr
  • strtok的使用
  • strerror

1.函数的使用
2.部分函数的模拟实现(工作原理)

字符分类函数

在这里插入图片描述
ag1.

#include<stdio.h>
#include<ctype.h>
int main()
{int r = isdigit('5');//返回的是非0值int p = isdigit('r');printf("%d %d\n", r,p);//非0值  0int m = islower('x');int n = islower('X');printf("%d %d", m,n);//非0值  0return 0;
}

练习1 将字符串中的小写字母转成大写,其他的不变
注a-97 A-65 b-98 B-66所以小写-32=大写

int main()
{char arr[] = "abCdEf1g2H3q#78";int i = 0;while (arr[i] != 0){if (islower(arr[i])){arr[i] -= 32;}printf("%c ", arr[i]);//A B C D E F 1 G 2 H 3 Q # 7 8i++;}return 0;
}

字符转换函数

在这里插入图片描述
所以练习1可以修改:

int main()
{char arr[] = "abCdEf1g2H3q#78";int i = 0;while (arr[i] != 0){if (islower(arr[i])){arr[i] = toupper(arr[i]);}printf("%c ", arr[i]);//A B C D E F 1 G 2 H 3 Q # 7 8i++;}return 0; 
}

函数的使用

在这里插入图片描述

strcpy的使用

在这里插入图片描述

字符串的拷贝
strcpy(目标,源头)
ag.

#include<string.h>
int main()
{char arr1[] = "abcdef";char arr2[20] = { 0 };//arr1=arr2错误的因为数组名是地址strcpy(arr2, arr1);printf("%s\n", arr2);return 0;
}

strcat的实现

字符串追加stract(目标,源头)
在这里插入图片描述
可以自己给自己追加
ag.

#include<string.h>
int main()
{char arr1[20] = "abcdef";char arr2[20] = "wwwww";//arr1=arr2错误的因为数组名是地址strcat(arr1, arr2);printf("%s\n", arr1);//abcdefwwwwwreturn 0;
}

strcmp的实现

字符串的比较
在这里插入图片描述
在这里插入图片描述
下面的q大 这个是按照对应位置按照顺序来比较的
strcmp(1,2)
1>2则return>0的数
1=2则return=0的数
1<2则return<0的数

int m = strcmp("abcde", "abq");
printf("%d", m);//小于0

strncpy,strncat,strncmp

strncpy
在这里插入图片描述
strncat
在这里插入图片描述
strncmp
在这里插入图片描述
在这里插入图片描述

strstr

stringstring字符串字符串 在一个字符串中找另外一个字符串
如果找到了返回起始地址,没有找到返回NULL

#include<string.h>
int main()
{char arr1[] = "abcdefgh";char arr2[] = "cde";char* r = strstr(arr1, arr2);if (r == 0){printf("招不到");}else{printf("%s", r);//cdefgh}return 0;
}

strtok的使用

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

strerror

在这里插入图片描述
在C语言使用的时候,库函数的使用,调用如果失败 会记录错误码
在这里插入图片描述

http://www.xdnf.cn/news/374437.html

相关文章:

  • 类加载机制详解:双亲委派模型与打破它的方式
  • 服务器机架的功能和重要性
  • 遗传算法组卷系统实现(Java版)
  • Linux平台下SSH 协议克隆Github远程仓库并配置密钥
  • Unity.UGUI DrawCall合批笔记
  • Unity Shaders and Effets Cookbook
  • LeetCode 热题 100 138. 随机链表的复制
  • 关键点检测--使用YOLOv8对Leeds Sports Pose(LSP)关键点检测
  • 数学相关使用笔记
  • libbpf.c:46:10: fatal error:‘libelf.h file not found
  • SpringCloud之Eureka基础认识-服务注册中心
  • 使用lldb查看Rust不同类型的结构
  • Java与Go语言对比教程
  • 【计算机视觉】优化MVSNet可微分代价体以提高深度估计精度的关键技术
  • Python_day21
  • 深度学习中的目标检测:从 PR 曲线到 AP
  • 常见音频主控芯片以及相关厂家总结
  • SSM框架整合MyBatis-Plus的步骤和简单用法示例
  • LLM大模型入门知识概念
  • 小米创业思考——阅读小记
  • MySQL 中如何进行 SQL 调优?
  • 数据库连接池
  • 04 mysql 修改端口和重置root密码
  • 图像处理篇--- HTTP|RTSP|MJPEG视频流格式
  • MindSpore框架学习项目-ResNet药物分类-模型优化
  • 对话 BitMart 新任 CEO Nenter (Nathan) Chow:技术创新、全球扩张和社区赋能
  • Jsp技术入门指南【十二】自定义标签
  • 内存安全暗战:从 CVE-2025-21298 看 C 语言防御体系的范式革命
  • vim 查看复杂的宏扩展
  • 程序代码篇---esp32视频流处理