博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C/C++中经常使用的字符串处理函数和内存字符串函数
阅读量:6367 次
发布时间:2019-06-23

本文共 2624 字,大约阅读时间需要 8 分钟。

一、            字符处理函数

1.        字符处理函数:<ctype.h>

int isdigit(int ch)   ;//是否为数字,即ch是否是0-9中的字符int isxdigit(int ch)   ;//是否为十六进制数字,即ch是否是0-9  a-z A-Z 中的字符int isalpha(int ch)  ;//是否为字母int isalnum(int ch)  ;//是否为字母或数字int islower(int ch)  ;//是否为小写字母int isupper(int ch)  ;//是否为大写字母int tolower(int ch)  ;//转换为小写字母int toupper(int ch)  ;//转换为大写字母

2.        字符串转换函数:<stdlib.h>

字符转换为数字:

double atof(char  *str) ; //将字符串str转换为double型数字int    atoi (char  *str) ; //将字符串str转换为int 型数字long   atol(char  *str) ; //将字符串str转换为long int 型数字

数字转换为字符:

//将int型数字digit按radix进制转换成字符串destStrchar * itoa (int digit, char *destStr, int radix) ;//同理将long型数字转换成字符串char * ltoa (long digit, char *destStr, int radix) ;//同理将unsignedlong型数字转换成字符串char * ultoa (long digit, char *destStr,int radix) ;

【以上库函数能够用于进制的转换】

类似函数还有:

double strtod(char *, char **) ;long strtol(char *, char **, int) ;unsigned long strtoul(char *, char **, int) ;

3.        字符串操作函数:<string.h>

char * strcpy (char *s1, char *s2) ; //将字符串s2拷贝到数组s1中。

char * strncpy(char *s1,char *s2) ; //将字符串s2的最多n个字符拷贝到数组s1中 char * strcat (char *s1, char * s2) ; //将字符串s2连接在字符串s1尾部 char * strncat(char *s1, char *s2, size_tn) ; //将字符串s2中最多n个字符连接在s1之后

【注意:以上操作都要求目标字符数组有足够的存储空间】

 

4.        符串比較函数:<string.h>

//比較字符串s1,s2.假设s1等于小于或大于s2。分别返回0。负值,正值int strcmp(char *s1, char *s2 ) ;int stricmp(char *s1, char *s2) ;//不区分大写和小写地比較两字符串int strncmp(char *s1, char *s2, size_t n)  ;//比較两字符串的至多n个字符

5.        字符串查找函数:<string.h>

//在字符串str中查找字符ch第一次出现的位置,假设找到了,就返回str中ch的指针,否则返回NULLchar *strchr(char*str, int ch) ;//查找字符串str中字符ch的最后一次出现的位置(即:从后往前查找)char*strrchr(char *str, int ch) ;//查找字符串str1中第一次出现字符串str2的位置char *strstr(char*str1, char *str2) ;//查找字符串str2中随意字符在字符串str1中首次出现的位置。char*strpbrk(char *str1, char *str2)

其他函数:

char *strrev(char * ) ; //字符串逆序函数size_t strlen(char * str) ;//測字符串str的长度

注意:

strncpy( ) , strncat( ) , strncmp( ) ,这些函数仅仅能对两个不同的字符串操作,不能对同一字符串的不同部分操作。假设须要这么做,能够使用内存函数。

若把目标字符串初始置空,strncat()能够完毕非常多功能的操作。能够替代strncpy( )的功能,还能够提取子串等。

 

二、            内存函数

内存函数直接对内存操作,不仅能够处理字符串,还能够处理不论什么类型的数组、结构等。

在标准C中,这些函数被觉得是字符串函数的一部分,是在头文件string.h中声明的。

 

void * memcpy(void *dest, const void *src, size_t n)  ;//从src地址处复制n个字节到dest , 并返回地址dest的值 void * memmove(void *dest, const void *src, size_t n)  ;//其功能与上个函数同样。差别在于:memmove函数在源内存区域和目标内存区域重叠的情况下也能正确运行操作。 void * memchr(const void *ptr, int val, size_t len) ;/*在地址ptr后的前len个字符中搜索val值的第一次出现。

假设找到val。它返回一个指向包括val值的第一个字符的指针,否则返回一个null字符。(每一个字符依据表达式(unsigned char)c == (unsigned char)val 比較)*/ void * memset(void * ptr, int val, size_tlen) ; //把val拷贝到从ptr開始的len个字符中,ptr所指定的字符被觉得是unsignedchar类型 int memcmp(const void * ptr1, const void * ptr2, size_t len) ; //把ptr1的前len个字符与ptr2的前len个字符进行比較。假设第一个字符串按字典顺序小于第二字字符串,memcmp就返回一个负值。

转载地址:http://kurma.baihongyu.com/

你可能感兴趣的文章
JS获取键盘按下的键值event.keyCode,event.charCode,event.which的兼容性
查看>>
查看ORACLE 数据库及表信息
查看>>
腾讯、百度、阿里面试经验—(1) 腾讯面经
查看>>
Codeforces Round #374 (Div. 2) D. Maxim and Array 贪心
查看>>
HTML DOM 教程Part1
查看>>
GBDT的基本原理
查看>>
MySQL修改root密码的多种方法(转)
查看>>
MongoDB 基础命令——数据库表的增删改查——遍历操作表中的记录
查看>>
.NET Core 跨平台发布(dotnet publish)
查看>>
Activity入门(一)
查看>>
CentOS下如何从vi编辑器插入模式退出到命令模式
查看>>
Mysql索引的类型
查看>>
Eclipse debug模式 总是进入processWorkerExit
查看>>
Nginx的https配置记录以及http强制跳转到https的方法梳理
查看>>
[每天五分钟,备战架构师-1]操作系统的类型和结构
查看>>
springcloud(十三):Eureka 2.X 停止开发,但注册中心还有更多选择:Consul 使用详解...
查看>>
关于Boolean类型做为同步锁异常问题
查看>>
TestLink运行环境:Redhat5+Apache2.2.17+php-5.3.5+MySQL5.5.9-1
查看>>
Get File Name from File Path in Python | Code Comments
查看>>
显示本月每一天日期
查看>>