常用字符串库函数总结

2023-05-16

本文转自https://blog.csdn.net/sharon_1987/article/details/50022855

本文与原文内容没有差别,但是由于本人比较注重颜值还有阅读体验(自认为这样可能阅读起来会舒服点),就...又给排版了一下,也算参与博客创作了(重在参与重在参与);

本文主要是粗略的介绍了各个字符库函数的大致用法,总结感觉也挺详细,就分享给诸位,有许多说明不明确,如果相要详细理解,可以在博客搜索,后续有些可能我可能也会写博客总结,到时候会附上链接,有些可能会存在错误,望大佬们指出;

一:字符处理库函数,头文件  #inlcude<ctype.h> 

1)isdight;
    (1)函数原型:int isdight (char c);
    (2)描述:如果c是一个 数字,返回一个真值,否则返回0(假)。
2)isalphs;
    (1)函数原型:int isalpha(char c);
    (2)描述:如果c是一个 字母,返回一个真值,否则返回0(假)。
3)isalnum;
    (1)函数原型:int isalnum(char c);
    (2)描述:如果c是一个 字母 或 数字,返回一个真值,否则返回0(假)。
4)isxdigit;
    (1)函数原型:int isxdigit(char c);
    (2)描述:如果c是一个 十六进制数字字符,返回一个真值,否则返回0
5)islower;
    (1)函数原型:int islower (int c);
    (2)描述:如果c是一个 小写字母,返回一个真值,否则返回0(假)。
6)isupper;
    (1)函数原型:int isupper(char c);
    (2)描述:如果c是一个 大写字母,返回一个真值,否则返回0(假)。
7)tolower;
    (1)函数原型:int tolower(char c);
    (2)描述:如果c是一个 大写字母,返回其 小写字母值,否则返回原参数。
8)toupper;
    (1)函数原型:int toupper(char c);
    (2)描述:如果c是一个 小写字母,返回其 大写字母值,否则返回原参数。
9)isspace;
    (1)函数原型:int isspace (char c);
    (2)描述:如果c是一个 空白字符,返回一个真值,否则返回0(假)。
10)iscntrl;
    (1)函数原型:int iscntrl(char c);
    (2)描述:如果c是一个 控制字符,返回一个真值,否则返回0(假)。
11)ispunct;
    (1)函数原型:int ispunct(char c);
    (2)描述:如果c是一个 除空格,数字和字母之外的可打印字符,返回其小写字母值,否则返回0。
12)isprint;
    (1)函数原型:int isprint(char c);
    (2)描述:如果c是一个 可打印字符(包括空格),返回一个真值,否则返回0。
13)iagraph;
    (1)函数原型:int iagraph(char c);
    (2)描述:如果c是 除空格之外的可打印字符,返回一个真值,否则返回0。


二 字符串转换函数,头文件 #include<stdlib.h>

1)atof
    (1)函数原型:double atof(const char *nPtr);
    (2)描述:把字符串nPtr转换为double类型
2)atoi
    (1)函数原型:int atoi(const char *nPtr);
    (2)描述:把字符串nPtr转换为int类型
3)atol
    (1)函数原型:long atol(const char *nPtr);
    (2)描述:把字符串nPtr转换为long类型
4)strtod
    (1)函数原型:double strtod(const char *nPtr, char **endPtr);
    (2)描述:把字符串nPtr转换为double类型
5)strtol
    (1)函数原型:long strtol(const char *nPtr, char **endPtr, int base);
    (2)描述:把字符串nPtr转换为long类型
6)strtoul
    (1)函数原型:long strtoul(const char *nPtr, char **endPtr, int base);
    (2)描述:把字符串nPtr转换为long类型


三 标准输入/输出库函数,头文件 #icnlude<stdio.h>

1)gets; (因为LINUX下没有gets函数,是因为怕系统读取爆炸列,所以用fgets函数代替)
    (1)函数原型:char *gets(char *s) ;
    (2)描述:从标准输入设备把字符读到数组S中,直到遇到新行符或文件结束符为止。
                   读完字符后,在数组的最后追加一个NULL字符
2)fgets;
    (1)函数原型:fgets(char *s, int n, FILE *fp);
    (2)描述:从fp指向的文件读取一个长度为(n-1)的字符串。存入起始地址为S的空间.
                   stdin 是从键盘上读取字符串到数组中。
3) putchar;
    (1)函数原型:int putchar(int c);
    (2)描述:打印存储在C中的字符(注意 这里是字符不是字符串)。stdout 是输出设备
4)puts;
    (1)函数原型:int puts(const char *s);
    (2)描述:打印字符串S和新行符。
5) getchar;
    (1)函数原型:int getchar(void);
    (2)描述:从标准输入设备读取下一个字符并以整数形式返回该字符。
6)sprintf ;
    (1)函数原型:int sprintf(char *s,const char *format,...);
    (2)描述:除了输出结果存储在数组S中(而不是打印到屏幕上)外,该函数于ptintf等价。
7)sscanf ;
    (1)函数原型:int sscanf(char *s,const char *format,...);
    (2)描述:除了从数组S中读取数据(而不是键盘读取)外,该函数于scanf等价。


四:字符串处理库中的字符操作函数,头文件 #include<string.h>

1)strcpy ;
    (1)函数原型:char *strcpy(char *s1,const char *s2);
    (2)描述:把字符串s2拷贝到字符串s1中,返回s1的值。
2) strncpy;
    (1)函数原型:char *strncpy(char *s1,const char *s2,size_t n);
    (2)描述:把字符串s2中的字符拷贝到数组s1中,最多拷贝n个字符,返回s1的值。
3)strcat ;
    (1)函数原型:char *strcat(char *s1,const char *s2);
    (2)描述:把字符串s2追加到数组s1中,s2的第一个字符覆盖掉s1中的终止字符NULL,返回s1的值。
4) strncat;
    (1)函数原型:char *strncat(char *s1,const char *s2,size_t n);
    (2)描述:把字符串s2追加到数组s1中,最多追加n个字符。s2的第一个字符覆盖掉s1中的终
止字符NULL,返回s1的值


五:字符串处理库中的比较函数,头文件#include<string.h>

1)strcmp ;
    (1)函数原型:int strcmp(char *s1,const char *s2);
    (2)描述:比较字符串s1和字符串s2。在s1等于,小于或者大于s2时,分别返回0,负值和正值。
2) strncmp;
    (1)函数原型:int strncmp(char *s1,const char *s2,size_t n);
    (2)描述:比较字符串s1和字符串s2中的n个字符。在s1等于,小于或者大于s2时,分别返回0,负值和正值。


六:字符串处理库中的查找函数,头文件#include<string.h>

1) strchr;
    (1)函数原型:char *strchr(const char *s,int c);
    (2)描述:定位字符c首次出现在字符串s中的位置。如果找到了c,返回一个指向s中的字符c的指针,否则返回NULL指针。
2) strcspn;
    (1)函数原型:size_t strcspn(const char *s1,const char *s2);
    (2)描述:计算并返回字符串s1中不含字符串s2中字符的起始段的长度。
3) strpbrk;
    (1)函数原型:size_t strcspn(const char *s1,const char *s2);
    (2)描述:定位字符串s1中首次出现字符串s2中字符的位置。如果找到了字符串s2中的字符,返回一个指向字符串s1中的该字符的指针,否则返回NULL指针。
4) strrchr;
    (1)函数原型:size_t strrchr(const char *s1,int c);
    (2)描述:定位字符字符串s中最后一次出现c的位置。如果找到了c,返回一个指向字符串s中的字符c的指针,否则返回NULL指针。
5) strspn;
    (1)函数原型:size_t strspn(const char *s1,const char *s2);
    (2)描述:计算并返回字符串s1中“只”含字符串s2中字符的起始段的长度。
6) strstr;
    (1)函数原型:size_t strstr(const char *s1,const char *s2);
    (2)描述:定位在字符串s1中首次出现字符串s2的位置。如果找到了该字符串,返回一个指向s1中的该字符串的指针,否则返回NULL指针。
7) strtok;
    (1)函数原型:size_t strtok(const char *s1,const char *s2);
    (2)描述:对strtok的一系列调用把字符串s1打断为用字符串s2中包含的字符分开的“记号”token。记号是逻辑波分,如一行文本中的单词。第一次调用把s1作为第一个参数,以后为继续把该字符串打断成记号而再次调用函数strtok时要用NULL作为第一个参数。每次调用都返回指向当前记号的指针。如果在调用该函数时,字符串中已没有剩余的记号,返回NULL.


七:字符处理库中的内存函数,头文件#include<string.h>

1) memcpy;
    (1)函数原型:void *memcpy(void *s1,const void *s2,size_t n);
    (2)描述:把s2所只想的对象中的n个字符拷贝到s1所指向的对象中,返回指向结果对象的指针。
2) memmov;
    (1)函数原型:void *memmov(void *s1,const void *s2,size_t n);
    (2)描述:把s2所指向的对象中的n个字符拷贝到s1所指向的对象中。拷贝过程就好像是先把字符从s2所指向的对象拷贝到临时数组中,然后再从临时数组拷贝到s1所指向的对象中,返回指向结果对象的指针。
3) memcmp;
    (1)函数原型:void *memcmp(void *s1,const void *s2,size_t n);
    (2)描述:比较s1和s1所指向的对象的前n个字符。如果s1所指向的对象中的字符等于,小于或大于s2所指向的对象中的字符,返回值分别等于0,小于0和大于0。
4) memcpy;
    (1)函数原型:void *memchr(void *s,int c,size_t n);
    (2)描述:定位在s所指向的对象的前n个字符中首次出现字符c的位置。如果找到c,返回指向它的指针,否则返回NULL.
5) memset;
    (1)函数原型:void *memset(void *s,int c,size_t n);
    (2)描述:把c(转换为unsigned char类型)拷贝到s所指向的对象的前n个字符中。返回指向结果的指针。


八:字符串处理库中的其他函数,头文件 #include<stdio.h>

1) strerror;
    (1)函数原型:char *strerror(int errornum);
    (2)描述:建立与errornum匹配的完整的文字字符串(与系统有关),返回指向该字符串的指针。
2) strlen;
    (1)函数原型:size_t strlen(const char *s);
    (2)描述:计算字符串s的长度,返回终止字符NULL前字符个数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

常用字符串库函数总结 的相关文章

  • eclipse svn 报错 文件夹已经不存在

    最近做项目用eclipse 遇到个很奇怪的问题 xff0c 前几天svn还是可以用的 xff0c 突然一下子不能用了 xff0c 于是网上各种找解决方法啊 xff0c 终于问题解决了 xff0c 总结一下 查看svn报错信息 xff1a s
  • Java 提供接口供其它应用调用

    64 author 会员 接口类 相关参数协议 xff1a 00 请求失败 01 请求成功 02 返回空值 03 请求协议参数不完整 04 用户名或密码错误 05 FKEY验证失败 64 Controller 64 RequestMappi
  • H5 下载文件到本地

    H5 下载文件到本地 其实 xff0c 目前下载文件到本地有很多中方法 xff0c 不管是 JavaScript 或者 jQuery 也好 xff0c 都有各色各样的方法 xff0c 都可以做的到 xff0c 在这里我介绍下我发现的一个比较
  • Javaweb QQ第三方登录

    这是第三方登录的第二篇 xff0c 关于web接入微博第三方登录可以参考我之前的博文 xff0c 之前的博文比较详细的讲解了该如何进行第三方登录的申请和准备工作 http blog csdn net cwfjimogudan article
  • vmware 虚拟机启动失败, Intel VT-x 处于禁用状态

    错误提示 xff1a 已将该虚拟机配置为使用 64 位客户机操作系统 但是 xff0c 无法执行 64 位操作 此主机支持 Intel VT x xff0c 但 Intel VT x 处于禁用状态 如果已在 BIOS 固件设置中禁用 Int
  • java 35 个 Java 代码性能优化总结

    前言 代码优化 xff0c 一个很重要的课题 可能有些人觉得没用 xff0c 一些细小的地方有什么好修改的 xff0c 改与不改对于代码的运行效率有什么影响呢 xff1f 这个问题我是这么考虑的 xff0c 就像大海里面的鲸鱼一样 xff0
  • 基于51单片机超声波红外避障语音导盲仪设计(全套资料)

    基于51单片机的超声波红外避障语音导盲仪设计 本系统采用STC89C52单片机 43 4位高亮白色LED灯 43 红外避障传感器电路 43 超声波电路 43 光敏电阻模块 43 语音报警电路 43 震动电路 43 液晶1602电路 43 电
  • linux 解压zip压缩包命令

    unzip 文件名 zip d 解压位置 例如 xff1a unzip 微信 zip d demowx
  • linux 文件授权命令

    文件授权 chmod 43 x sh
  • linux tomcat常用命令

    startup sh 启动tomcat shutdown sh 关闭tomcat ps ef grep tomcat 查看Tomcat运行 kill 9 4723 杀进程 tail f catalina out 查看tomcat运行日志 c
  • linux redis常用命令

    flushall 清空redis缓存 redis cli 进入redis xff08 需要进入redis的安装目录下 xff09 get key 查找key del key 删除key
  • java DateUtils时间工具栏

    package com eeye common utils import org apache commons lang3 time DateFormatUtils import java text ParseException impor
  • unity3d:Astar寻路,A星,A*,二叉堆优化Open表

    原理视频 油管 xff1a https youtu be i0x5fj4PqP4 别人的B站翻译 xff1a https www bilibili com video BV1v44y1h7Dt spm id from 61 333 999
  • TCP/IP 、HTTP、Socket的区别与联系

    1 Socket和http的区别 http xff1a 如何封装数据 xff1b 基于TCP协议 xff0c 简单的对象访问协议 xff0c 对应于应用层 xff1b xff08 货物 xff09 tcp协议 xff1a 数据在网络中的传输
  • 【亲测一次成功】将本地代码上传到Gitee码云

    1 在Gitee码云上创建仓库 2 在本地新建一个文件夹 3 右击新建的文件夹 xff0c 使用git bush here 4 输入 git init 5 输入 git remote add origin 43 仓库地址 6 输入 git
  • keil5打开工程报错:error:not found device

    1 error not found device 解决方法 xff1a 将Project文件夹中的工程扩展名由 uvproj改为 uvprojx 原因 xff1a 前提是所有的库安装都是正常且正确的 xff0c 所以应该是如下问题 xff1
  • STM32学习笔记:IWDG_独立看门狗

    1 简介 独立看门狗就是一个12位的递减计数器 xff0c 最大值0xFFF xff1b 计数器的值从某一个值减到0时 xff0c 系统产生一个复位信号 xff08 IWDG RESET xff09 xff1b 在计数器没减到0之前 xff
  • 基于单片机避障导盲智能拐杖控制设计(毕设资料)

    本设计研究为盲人提供行走时 xff0c 遇到前方障碍物提前躲避的智能避障预警系统 以AT89S52单片机作为核心处理器 xff0c 采用超声波回波时间差测量人与物体之间的安全距离 xff0c 实现了提前预警使用者避让障碍物 xff0c 起到
  • Matlab:excel文件 转 txt文件 (只需2行代码)

    亲测有用 xff0c 只需两行代码 xff0c 将EXCEL文件 xff0c 转换成txt文件 xff1a Data 61 readtable 39 TEST xls 39 writetable Data 39 test txt 39 ex
  • 快速理解C语言——指针

    1 地址和内存 把值存在内存中 xff0c 内存就给每一个值分配一个地址 xff1a 100 104 108 112 116就是每个值分别对应的地址 xff1b 给每个内存地址起个别名 xff0c 就是 xff1a 变量 2 值和类型 如下

随机推荐

  • 亲测有用!完美关闭win10不断自动更新

    自从更新到win10以来 xff0c 每次开关机都会遇到win10更新的问题 试过CSDN和其他很多种方法都没有用 xff0c 最后在知乎上看到一个大神写的 用以下方法完美解决 xff0c 再没出现过自动更新的问题 如何完美解决win10自
  • 一文解决所有PCA问题——这是我看过最好的讲解PCA理论文章

    转载 xff1a http blog codinglabs org articles pca tutorial html PCA xff08 Principal Component Analysis xff09 是一种常用的数据分析方法 P
  • C语言解析http协议

    C语言解析http协议 1 关键解析函数1 1 strstr xff08 xff09 1 2 strncmp 2 代码 1 关键解析函数 1 1 strstr xff08 xff09 函数原型 xff1a span class token
  • 大小端问题

    本来我想说 xff0c Windows平台一般是小端 xff0c Linux一般是大端 xff1b 但是 实际上大小端CPU架构有关 xff0c 当然和系统也可能有关 xff0c 可以配置大小端 xff1b 对于CPU框架 xff0c AR
  • android socket通讯

    项目中要用到进程间通讯 xff0c 服务端接收应用的请求数据 xff0c 对串口进行读写操作 考虑到android的socket服务比较实用 xff0c 并且可以支持多个客户端同时连接 服务端写成一个服务 xff0c 在init rc中启动
  • LwIP之套接字接口

    套接字结构体 struct lwip sock API连接指针 struct netconn conn 前一次读剩下的数据 void lastdata 前一次读数据的偏移量 u16 t lastoffset 接收数据的次数 s16 t rc
  • Simulink之功率场效应晶体管(P-MOSFET)

    功率场效应管 xff08 P MOSFET xff09 属于电压全控型器件 xff0c 门极静态电阻极高 驱动功率小 工作频率高 热稳定性好 xff1b 但是电流容量小 耐压低 功率不易做大 xff0c 常用于中小功率开关电路 电气符号 外
  • Simulink之变压器隔离的直流-直流变换器

    半桥式隔离降压变压器 全桥式隔离降压变压器
  • 动捕系统、ROS、SIMULINK的通信

    卓翼simulink控制源码 一 路径 xff1a droneyee ws src 下的功能包的作用 1 droneyee 包含无人机主要的起飞 降落的控制程序 xff1a Publisher的程序编写 matlab udp的IP和串口号的
  • USB描述符

    枚举过程 USB设备枚举一般会经过插入 供电 初始化 分配地址 xff0c 配置 xff0c 获取设备描述符 获取配置描述符 获取字符串和配置设备这么几个过程 xff08 第一次获取设备描述符就是为了获取最大包长 xff0c 在设备描述符的
  • 28335之GPIO输入

    include 34 DSP2833x Device h 34 include 34 DSP2833x Examples h 34 define LED GpioDataRegs GPADAT bit GPIO0 GPIO配置函数 void
  • 数字交流电源设计

    设计目标 xff1a 市电输入 开关频率32KHz 0 220V 50 100Hz 1200W输出 1 确定输入电压 经查阅 xff0c 我国市电电压标准 xff0c 220V单相供电时 xff0c 为额定值的 43 7 xff0c 10
  • 连续时间系统的时域分析

    一 微分方程的求解 1 求微分方程的齐次解 xff08 1 xff09 写出特征方程并求解 2 写出齐次解 2 求微分方程的特解 已知 xff08 1 xff09 根据表2 2 xff0c 写出特解函数 xff08 2 xff09 带入并求
  • CAN总线电平(隐性与显性)

    nbsp nbsp nbsp nbsp CAN2 0B规范定义了两种互补的逻辑数值 显性和隐性 同时传送显性和隐性位时 总线呈现显性状态 同时传送显性状态位时 总线呈现显性状态 同时传送隐性状态位时 总线呈现隐性状态 显性数值表示逻辑0 隐
  • STM32之通用定时器计数器模式

    include stm32f10x h RCC时钟配置 void RCC config ErrorStatus HSEStartUpStatus RCC寄存器设置为默认配置 RCC DeInit 打开外部高速时钟 RCC HSEConfig
  • STM32之通用定时器编码器模式

    1 编码器原理 如果两个信号相位差为90度 则这两个信号称为正交 由于两个信号相差90度 因此可以根据两个信号哪个先哪个后来判断方向 根据每个信号脉冲数量的多少及整个编码轮的周长就可以算出当前行走的距离 如果再加上定时器的话还可以计算出速度
  • Modbus寄存器地址规则

    Modbus协议定义的寄存器地址是5位十进制地址 xff0c 即 xff1a 线圈 xff08 DO xff09 地址 xff1a 00001 09999 触点 xff08 DI xff09 地址 xff1a 10001 19999 输入寄
  • 电赛TI处理器入门

    文章目录 电赛常用微处理器及评估板入门一 写在前面的话二 平台介绍1 TIVA C Series TM4C123G Lauchpad Evaluation Kit处理器芯片TM4C123GH6PM MCUARM架构处理器核心 Process
  • c++中的struct和class的区别

    1 struct与class的区别 1 继承权限 xff1a struct默认为public xff0c 而class默认的为private 2 访问权限 xff1a struct默认的成员变量访问控制权限是public xff0c 而cl
  • 常用字符串库函数总结

    本文转自https blog csdn net sharon 1987 article details 50022855 本文与原文内容没有差别 xff0c 但是由于本人比较注重颜值还有阅读体验 xff08 自认为这样可能阅读起来会舒服点