12.C基础_字符串相关函数

news2024/9/23 9:29:49

字符串长度strlen

头文件

#include <string.h>

函数声明

size_t strlen(const char *s);

返回值:long型的字符串长度

s:要计算长度的字符串,必须以' \0 '结尾

注意:strlen计算的长度是以' \0 '为结尾,而sizeof是计算整个数组大小。

 一些特殊的符号:

\\:代表字符的 \

\ddd:代表一个八进制数

\xhh:代表一个十六进制数

示例1:strlen与sizeof的区别

示例2:有特殊符号的strlen返回值分析

拷贝strcpy

头文件

#include <string.h>

函数声明

char* strcpy(char* dest,const char* src);

返回值:dest的首地址

dest:拷贝到的目标地址

src:需要拷贝的原数据

示例代码

连接strcat

 头文件

#include <string.h>

函数声明

char* strcat(char* dest, const char* src);

返回值:dest的首地址

dest:要连接的目标地址

src:需要连接的原数据

示例代码

比较strcmp

头文件

#include <string.h>

函数声明

int strcmp(const char *str1, const char *str2);

返回值:从左向右依次比较,大的返回正数、小的返回负数、相等返回0

str1、str2:要进行比较的字符串

注意:当比较到第一个不一样的时,strcmp就停止比较。这个大小值是ASCII码的大小值比较。

示例代码:

判断字符是否为字母isalpha

头文件

#include <ctype.h>

函数声明

int isalpha(int c);

 返回值:0不是字母,非0是字母

c:需要进行判断的字符

示例代码:

判断字符是否为大写字母isupper

头文件

#include <ctype.h>

函数声明

int isupper(int c);

 返回值:0不是大写字母,非0是大写字母

c:需要进行判断的字符

示例代码:

将小写字母转为大写字母toupper

头文件

#include <ctype.h>

函数声明

int toupper(int c);

 返回值:转换后的结果,传入小写字母才正常转换,传入其他字符原样输出。

c:需要进行判断的字符

示例代码:

将大写字母转为小写字母tolower

头文件

#include <ctype.h>

函数声明

int tolower(int c);

 返回值:转换后的结果,传入大写字母才正常转换,传入其他字符原样输出。

c:需要进行判断的字符

示例代码:

以指定格式写入字符串sprintf

1、sprintf

sprintf对写入的字符串是否越界没有保护,使用snprintf可以实现保护功能。

 头文件:

#include <stdio.h>

函数声明:

int sprintf(char *str, const char *format, ...);

返回值:写入到str中的字符个数,不包括 ' \0 '

str:需要进行赋值的字符串

format:字符串格式,类似printf用双引号括起来,%d等获取后面填入的参数

示例代码1:实现整型转字符型

示例代码2:实现格式化输出日期

详细实现过程在博文:7.C_Demo_格式化打印当前时间-CSDN博客

2、snprintf

头文件:

#include <stdio.h>

函数声明:

int snprintf(char *str, size_t size, const char *format, ...);

 返回值:写入到str中的字符个数,不包括 ' \0 '。当格式化的数据超出了size指定的容量时,返回一个大于或等于size的值

str:需要进行赋值的字符串

size:目标字符串str的最大容量,包括结尾的空字符('\0'),写为sizeof(数组名)

format:字符串格式,类似printf用双引号括起来,%d等获取后面填入的参数

示例代码1:数据长度符合允许写入长度

示例代码2:数据长度大于允许写入长度

将字符串转换为整数

1、atoi

atoi 将转换字符串中的数字,直到遇到非数字字符。

 头文件:

#include <stdlib.h>

函数声明:

int atoi(const char *str);

返回值:由字符串转换出来的整型数据。

str:要转换的字符串。必须是以' \0 '结尾,不能是字符数组

示例代码:

2、strtol

strtol能够以指定的基数,将字符串转为整数。

头文件:

#include <stdlib.h>

函数声明:

long int strtol(const char *str, char **endptr, int base);

返回值:转换的结果,此时endptr指向第一个非法字符位置。

str:要转换的字符串。必须是以' \0 '结尾,不能是字符数组

endptr:转换结束的位置,存储转换后的剩余字符串,可以写NULL

base:转换时使用的基数,可以是 0 到 36,0 表示自动检测基数。

示例代码1:endptr指向验证

示例代码2:转换基数验证

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2038808.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【书生大模型实战营(暑假场)闯关材料】入门岛:第1关 Linux 基础知识

【书生大模型实战营&#xff08;暑假场&#xff09;闯关材料】入门岛&#xff1a;第1关 Linux 基础知识 1. 使用VScode进行SSH远程连接服务器2. 端口映射及实例参考文献 这一博客主要介绍使用VScode进行服务器远程连接及端口映射。 1. 使用VScode进行SSH远程连接服务器 安装V…

一个基于 vue 的强大表单和高性能表格组件,简洁API设计,支持虚拟树,列拖拽,懒加载,快捷菜单(附源码)

前言 在现代Web应用开发中&#xff0c;表单和表格是两个核心组件&#xff0c;它们对于数据展示和用户交互至关重要。然而&#xff0c;现有的解-决方案往往存在一些痛点&#xff0c;如不够灵活、性能问题、以及难以实现复杂功能等。这些问题限制了开发者的创造力&#xff0c;也…

树莓派开发相关知识二

1、相关术语 树莓派装载的芯片&#xff1a;BCM2835是一个MCU微处理器&#xff0c;它可以理解为CPU其它模块的组合。 GPIO&#xff1a;General-purpose input/output&#xff0c;通用型输入输出&#xff0c;其接脚可以供使用者由程控自由使用&#xff0c;PIN脚依现实考量可作为…

java或者sh脚本实现 实现 mysql 数据库指定表,定时导出并导入指定数据库并切换指定字段名(适合linux和windows)

定时导出指定数据库的指定表导出到指定数据库 一、Java实现 1、contronller Slf4j Controller public class BackupController {AutowiredBackupService backupService;// 备份 // ResponseBody // PostMapping("/backup/backupByfile")Scheduled(cron&quo…

音视频开发

通过多线程分别获取高分辨率(1920 * 1080)和低分辨率(1280 * 720) 初始化VI模块 初始化HIGH VENC模块 初始化LOW VENC模块 初始化RGA模块 绑定 VI和HIGH VENC 绑定 VI和RGA 创建线程 HIGH VENC处理 RGA处理 LOW VENC处理 销毁 QP原理的讲解 QP参数调节&#xff0c;指的是量化…

C:每日一题:二分查找

1、知识介绍&#xff1a; 1.1 概念&#xff1a; 二分查找是一种在有序数组中查找某一特定元素的搜索算法 1.2 基本思想&#xff1a; 每次将待查找的范围缩小一半&#xff0c;通过比较中间元素与目标元素的大小&#xff0c;来决定是在左半部分还是右半部分继续查找。 举个生…

进程状态和线程

一、wait&#xff08;阻塞调用&#xff09; pid_t wait(int *status); 1.功能&#xff1a;&#xff08;1&#xff09;获取子进程退出状态 &#xff08;2&#xff09;.回收资源 //会让僵尸态的子进程销毁 参数 int *status: 指向一个整数的指针&#xff0c;wait …

qtday01

实现一个登录窗口 #include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {//设置标题this->setWindowTitle("小黑子登录器");//设置图标this->setWindowIcon(QIcon("E:\\qt\\day1_04\\pictrue\\cxk.gif"));//固定…

移动APP测试有哪些注意事项?专业APP测试报告如何获取?

移动APP在其生命周期中有不同的阶段&#xff0c;从开始到投入目标市场再到被淘汰。移动APP的成功有多种因素&#xff0c;例如创建、部署、推广、粘性等。但是&#xff0c;创建出色APP的关键在于它的测试&#xff0c;软件测试负责为客户提供安全有效的产品&#xff0c;因此移动A…

Haproxy实现https

haproxy可以实现https的证书安全,从用户到haproxy为https,从haproxy到后端服务器用http通信 &#xff0c;但是基于性能考虑,生产中证书都是在后端服务器比如nginx上实现。 配置HAProxy支持https协议&#xff0c;支持ssl会话&#xff1a; bind *:443 ssl crt /PATH/TO/SOME_PEM…

【C++ 面试 - 基础题】每日 3 题(十)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…

如何把命令行创建python虚拟环境与pycharm项目管理更好地结合起来

1. 问题的提出 我在linux或windows下的某个目录如“X”下使用命令行的方式创建了一个python虚拟环境&#xff08;参考文章&#xff09;&#xff0c;对应的目录为myvenv, 现在我想使用pycharm创建python项目myproject&#xff0c;并且利用虚拟环境myvenv&#xff0c;怎么办&…

搭建jenkins+k8s过程中遇到的问题

1、k8s地址配置导致的一些个问题 Still waiting to schedule task ‘Jenkins’ doesn’t have label ‘k8s-jenkins-slave’ 出现以上异常一般就是k8s地址配置不对或者地址不通导致的 配置完k8s地址以及命名空间等内容之后,在获取k8s下的token 1.查看sa # kubectl get sa…

我的第一个CUDA程序

MatAdd算法 实现两个矩阵对应元素相加 MatAdd算法的GPU实现 CPU端为输入矩阵A和B、输出矩阵C分配空间&#xff0c;并进行初始化CPU端分配设备端内存&#xff0c;并将A和B传输到GPU上定义数据和线程的映射关系&#xff0c;并确定线程的开启数量和组织方式 每个线程负责输出矩阵…

EasyX自学笔记3(割草游戏1)

割草游戏&#xff0c;有玩家&#xff08;上下左右控制移动&#xff09;周围围绕子弹&#xff0c;敌人&#xff08;随机刷新&#xff09;向玩家靠近&#xff0c;子弹打死敌人&#xff0c;玩家与敌人触碰游戏结束。 分析需求 1.有玩家、敌人、子弹三种对象 2.玩家上下左右控制…

Spring MVC数据绑定和响应学习笔记

学习视频:12001 数据绑定_哔哩哔哩_bilibili 目录 1.数据绑定 简单数据绑定 默认类型数据绑定 简单数据类型绑定的概念 参数别名的设置 PathVariable注解的两个常用属性 POJO绑定 自定义类型转换器 xml方式 注解方式 数组绑定 集合绑定 复杂POJO绑定 属性为对象类…

力扣面试经典算法150题:最长公共前缀

最长公共前缀 今天的题目是力扣面试经典150题中的数组的简单题: 最长公共前缀 题目链接&#xff1a;https://leetcode.cn/problems/longest-common-prefix/description/?envTypestudy-plan-v2&envIdtop-interview-150 题目描述 编写一个函数来查找字符串数组中的最长公…

修改OpenSSH服务版本号

前言 这几年信息安全要求很高&#xff0c;奈何口号响亮掩盖不了我们技术基础依然很低的事实&#xff0c;加上风口烧钱和政绩工程等因素&#xff0c;于是就诞生了一些乱象&#xff0c;其中一个就是安全扫描胡乱标记&#xff0c;这里面的典型就是OpenSSH的漏洞扫描报告。 比如&…

人工智能小车——智能车臂控制平台

随着机器人技术的不断发展 &#xff0c;各行业对机器人应用人才的需求也随之增加&#xff0c;培养符合行业发展需求的机器人技术专业人才成为了高校的重要任务。 基本介绍 智能车臂控制平台&#xff08;ZI-AutoRB&#xff09;是一套用以机器人控制技术学习和研究的软硬件系统。…

米联客-FPGA程序设计Verilog语法入门篇连载-10 Verilog语法_一般设计规范

软件版本&#xff1a;无 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用所有系列FPGA 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 http://www.uisrc.com 视频课程、答疑解惑&#xff01; 1概述 本小节讲解Verilog语法的一般…