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

【C语言】输入输出、字符串操作、内存操作、文件操作函数

三对基本输入输出函数

1.gets(),puts()

gets()从标准输入中获取一个字符串,到str(自己创建的char型数组)中,读到换行或输入末尾结束获取r;

成功返回str,失败返回空。

char *gets(char *str);

puts()把一个字符串写入标准输出,直到读到\0;

成功返回字符串长度,包括\0,失败返回EOF。

int puts(const char *str);

2.getchar(),putchar()

getchar()从标准输入中获取一个字符;

成功返回字符阿斯克码值,没读到字符返回EOF;

int getchar(void);

putchar() 将一个字符写入标准输出;

成功返回要被写入的字符的阿斯克码,失败返回EOF;

int putchar(int char);

3.scanf(),printf()

scanf()从标准输入读取格式化输入;

成功返回匹配和赋值的个数,失败/读完返回EOF。

format是字符串

int scanf(const char *format, ...);

printf()发送格式化输出到标准输出;

成功返回写入的字符总数,否则返回一个负数

int printf(const char *format, ...);

常用格式字符:

a:16进制浮点数;x:16进制无符号整数;

d:10进制整数;o:8进制无符号整数;u:10进制无符号整数;

f:小数单、双精度实数;e:指数单、双精度实数(科学计数法)

c:字符;s:字符串;p:指针地址。


字符串操作函数

strcpy复制字符串

参数:

dest -- 指向用于存储复制内容的目标数组。

src -- 要复制的字符串。

返回值:

返回一个指向最终的目标字符串 dest 的指针

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

strcmp()比较字符串

        比较字符串每个字符的阿斯克码值。

参数:

str1 -- 要进行比较的第一个字符串。

str2 -- 要进行比较的第二个字符串。

n -- 要比较的最大字符数。

返回值:

返回值==0,str1==str2;

返回值<0,str1<str2;

返回值>0,str>str2。

int strncmp(const char *str1, const char *str2, size_t n);

strlen()求字符串长度

求长度遇到\0结束,不包含\0

        sizeof()是包含\0的

size_t strlen(const char *str);

strncpy最多复制n个字符

dest -- 指向用于存储复制内容的目标数组。

src -- 要复制的字符串。

n -- 要从源中复制的字符数

char *strncpy(char *dest, const char *src, size_t n);

strncmp比较字符串前n个字符

str1 -- 要进行比较的第一个字符串。

str2 -- 要进行比较的第二个字符串。

n -- 要比较的最大字符数。

int strncmp(const char *str1, const char *str2, size_t n);

strtok()字符串分割

str --字符串

delim --分隔符

每一次分割,将str中匹配到delim的字符换成\0,下一次分割从strtok(NULL,delim)开始

char *strtok(char *str, const char *delim);

strcat()字符串拼接

dest -- 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串。

src -- 指向要追加的字符串,该字符串不会覆盖目标字符串。

返回指向dest的指针

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

 mem系列函数

常用的:memcpy,memcmp,memset

mem系列对比str系列:str只能用于char型,mem可以给所有类型用

memcpy复制

从存储区 str2 复制 n 个字节到存储区 str1

void *memcpy(void *str1, const void *str2, size_t n);

 memcmp比较

把存储区 str1 和存储区 str2 的前 n 个字节进行比较,返回值同strcmp。

int memcmp(const void *str1, const void *str2, size_t n);

 memset设置n个c(多用于清空)

 复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符。

void *memset(void *str, int c, size_t n);

上述函数使用: 

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
int main()
{char a[20] = "123456789";char b[20] = "";int arr[5] = { 1,2,3,4,5 };int arrb[5];printf("将a中三个字符复制到b\n");strncpy(b, a, 3);puts(b);printf("将a中五个个数据复制到b\n");memcpy(b, a, 5);puts(b);printf("将arr中五个数据复制到brr\n");memcpy(arrb, arr, 5 * sizeof(int));printf("清空b\n");memset(b, 0, 20);puts(b);//清空arr// memcpy(arr, 0, sizeof(int) * 5);memset(arr, 0, sizeof(int) * 5);printf("将abc连接到a字符串后面\n");strcat(a, "abc");puts(a);
}


文件操作函数

开fopen,关fclose;读fread,写fwrite;

取字符fgetc,fputc;fgets,fputs;fscanf,fprintf;fseek,ftell;rewind;

fseek()

  • stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了流。
  • offset -- 这是相对 whence 的偏移量,以字节为单位。
  • whence -- 这是表示开始添加偏移 offset 的位置。它一般指定为下列常量之一:
int fseek(FILE *stream, long int offset, int whence);

ftell()返回当返回给定流 stream 的当前文件位置

  • stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了流。
long int ftell(FILE *stream);

rewind() 设置文件位置为给定流 stream 的文件的开头

long int ftell(FILE *stream);

相关文章:

【C语言】输入输出、字符串操作、内存操作、文件操作函数

三对基本输入输出函数 1.gets()&#xff0c;puts() gets()从标准输入中获取一个字符串&#xff0c;到str&#xff08;自己创建的char型数组&#xff09;中&#xff0c;读到换行或输入末尾结束获取r&#xff1b; 成功返回str&#xff0c;失败返回空。 char *gets(char *str)…...

[golang gin框架] 25.Gin 商城项目-配置清除缓存以及前台列表页面数据渲染公共数据

配置清除缓存 当进入前台首页时,会缓存对应的商品相关数据,这时,如果后台修改了商品的相关数据,缓存中的对应数据并没有随之发生改变,这时就需要需改对应的缓存数据,这里有两种方法: 方法一 在管理后台操作直接清除缓存中的所有数据,当再次访问前台首页时,就会先从数据库中获取…...

文件夹改名,如何在改名之后批量复制文件夹名称

在日常时候中会遇到给文件夹改名的时候&#xff0c;那么我们又如何在改名之后批量复制文件夹名称&#xff1f;今天就由小编来给大家分享一下操作办法。 首先第一步&#xff0c;我们要进入文件批量改名高手&#xff0c;并在板块栏里选择“文件夹批量改名”板块。 第二步&#xf…...

汇编与内联 x86-64

机器字长 x86是32位系统 64是64位系统 这里的32和64&#xff0c;指的都是机器字长 机器字长是 能直接进行整数/位运算的大小指针的大小(索引内存的范围) 容易与机器字长混淆的概念&#xff1a;字 字 字存储字长 字是MDR寄存器的位数&#xff0c;代表每个主存存储体中的存储…...

OSCP-UT99(IRC、Unreal Tournament 99)

目录 扫描 WEB IRC 提权 扫描 sudo nmap 192.168.142.44 -p- -sS -sV PORT STATE SERVICE VERSION 21/tcp open ftp FileZilla ftpd 80/tcp open http Apache httpd 2.4.16 (OpenSSL/1.0.1p PHP/5.6.12) 44…...

Kubernetes CPU内存资源限定

在 Kubernetes 中创建工作负载时&#xff0c;您可以为 Pod 中的每一个容器指定其所需要的内存&#xff08;RAM&#xff09;大小和 CPU 数量。如果这些信息被指定了&#xff0c;Kubernetes 调度器可以更好的决定将 Pod 调度到哪一个节点。对于容器来说&#xff0c;其所需要的资源…...

fitlog使用教程(持续更新ing...)

诸神缄默不语-个人CSDN博文目录 fitlog包是用于自动版本管理和自动日志记录的Python包&#xff0c;是fastNLP团队开发的。 fitlog 中文文档 — fitlog 文档 我下载的是fitlog 0.9.15版本。 他们团队的文档写的真的不行&#xff0c;崩溃&#xff0c;FastNLP也很难用&#xff0…...

Linux下搭建Go开发环境

Linux下搭建Go开发环境可以按照以下步骤进行&#xff1a; 1、下载最新的Go语言二进制包&#xff0c;可以从官网 https://golang.org/dl/ 下载。 2、将下载好的包解压缩到你想要安装的目录下&#xff0c;如 /usr/local/go。 3、添加环境变量&#xff0c;在终端中输入以下命令…...

一文搞懂SQL注入攻击

SQL注入攻击 1. 前言2. SQL注入简介3. SQL注入步骤4. 防范SQL注入 1. 前言 随着互联网的发展和普及&#xff0c;网络安全问题越来越突出&#xff0c;网络在为用户提供越来越多服务的同时&#xff0c;也要面对各类越来越复杂的恶意攻击。SQL注入&#xff08;SQL Injection&…...

CCTV-TIME特别关注:首届医药港国际健康美食文化嘉年华

“食在广州 味在方舟”首届医药港国际健康美食文化嘉年华4月28日在健康方舟盛大开幕! 【央媒时代TOP中国时代周刊中国品牌万里行CCTV-TIME特别关注】健康美食、滋补靓汤、异国风情、非遗文化、治愈萌宠、灯光夜市、亲子玩乐、浪漫许愿树……五一长假,广州的这场精彩嘉年华活动…...

FE_TA不知道的CSS 换行系列【1】white-space

在W3C官方描述中&#xff0c;white-space主要有以下两个作用&#xff1a; 是否进行空格合并&#xff0c;以及控制空格合并的方式&#xff1b;是否在soft wrap opportunities&#xff08;文本中可进行换行的断点位置&#xff09;处进行文本换行。 从字面意思来看white-space即…...

matlab中计算标准差std函数

标准差 标准差&#xff08;Standard Deviation&#xff09;是离均差平方的算术平均数&#xff08;即&#xff1a;方差&#xff09;的算术平方根。 标准差是方差的算术平方根。标准差能反映一个数据集的离散程度。平均数相同的两组数据&#xff0c;标准差未必相同。 计算公式&…...

【操作系统】原语操作详解

基本概念 "原语"一词源于英文 “primitive” 或 “instruction”&#xff0c;意为 “原始的” 或 “基本的指令”。在计算机科学中&#xff0c;原语是一种基本的操作&#xff0c;它是不可分割的&#xff0c;要么全部执行成功&#xff0c;要么全部执行失败&#xff0…...

mongDB的相关查询插入操作

db.getCollection(“ProductBuriedPointPo”).find();–查询 db.getCollection(“ProductBuriedPointPo”).remove({“_id”: ObjectId(“61e8f4c3bdc4381042acd296”)})–删除 db.getCollection(“ProductBuriedPointPo”).insert( { _id: ObjectId(“61e8f4c3bdc4381042acd2…...

【C++初阶】C++入门(二):引用内联函数auto关键字范围for循环(C++11)指针空值nullptr

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;C初阶 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【C初阶】…...

地下污水厂智能照明控制应用

摘要:结合某地下污水厂项目&#xff0c;从结构、系统组成、系统功能、控制要求、场景模式等方面介绍了地下污水厂智能照明控制系统&#xff0c;探索了一套适用于地下污水厂的智能照明控制策略&#xff0c;以确保地下污水厂正常运行的照明需求。 关键词:智能照明控制系统;地下污…...

IS220UCSAH1A利用电子和空穴两种载流子导电的,所以叫做双极型电路

IS220UCSAH1A利用电子和空穴两种载流子导电的&#xff0c;所以叫做双极型电路 美国的通用电气公司&#xff08;General Electric Company&#xff0c;以下简称 GE&#xff09;想要称霸整个工业互联网&#xff0c;但却失败了。为什么呢&#xff1f; 多年来&#xff0c;GE 一直在…...

干货|英国专利申请

英国是世界上公认的一个实施现代专利制度的国家。英国1624年颁布的《垄断法案》被认为是世界上一部具有现代意义的专利法&#xff0c;并成为现代专利保护制度系的起点。英国现行的专利法于1977年颁布&#xff0c;并于1978年生效。英国的专利制度在保护发明创造&#xff0c;促进…...

springboot文件上传

1.新建文件上传页面 在static目录中新建upload-test.html&#xff0c;上传页面代码如下所示&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>springboot文件上传测试</title> <…...

天龙八部手游服务端架设搭建教程

天龙八部手游服务端架设搭建教程 大家好&#xff0c;我是艾西。最近更新游戏搭建教程比较少也被不少小伙伴催更&#xff0c;今天我和大家聊聊天龙八部手游服务端架设搭建。 游戏讲述元佑元年&#xff0c;大宋遭受辽国入侵的故事&#xff0c;玩家可扮演峨眉、丐帮、天山、逍遥、…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域&#xff0c;无损检测&#xff08;NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统&#xff0c;以非接触式光学麦克风技术为核心&#xff0c;打破传统检测瓶颈&#xff0c;为半导体、航空航天、汽车制造等行业提供了高灵敏…...