C/C++中常用的字符串处理函数和内存字符串函数

原创 2015年07月09日 16:02:28

一、            字符处理函数

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进制转换成字符串destStr
char * 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的指针,否则返回NULL
char *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就返回一个负值。

版权声明:本文为博主原创文章,未经博主允许不得转载。

C/C++常用字符串函数实例

1、strchr #include #include char str1[400], str2[400]; char az[400], ax[400], bz[400], bx[400]; ...

c++常用的字符串操作函数

做一次小小的总结,免得想用的时候现去找 函数名: stpcpy 功 能: 拷贝一个字符串到另一个,遇到'\0'时停止拷贝,destin要有足够大的空间 用 法: char *stpcpy(char *...

C语言字符串函数大全

函数名: stpcpy  功  能: 拷贝一个字符串到另一个  用  法: char *stpcpy(char *destin, char *source);  程序例: #include  ...
  • realxie
  • realxie
  • 2012年02月07日 17:43
  • 13923

C语言字符串函数的一些实现

#include #include #include #include /* ---------------------------------------------------------...

C++和C对字符串操作总结

一 c语言的字符串 c语言中没有字符串这个数据类型,用两种方法来表示字符串,第一种是字符数组char s[],第二种是字符指针char *s, 两者有区别,不能任务是一样的,区别如下(不完整,后期再...
  • deyuzhi
  • deyuzhi
  • 2016年06月24日 11:04
  • 1458

C语言字符串处理函数

这边文章对c语言的字符串处理的常用库函数总结一下,并进行实现。 1.字符串比较 int strcmp(const char *s1, const char *s2); 比较两个字符串的大小(不忽略大...

C++字符串函数与C字符串函数比较

赋值拷贝: #include #include using namespace std; void main(){ string a="hello world!"; string b; /...

TCP BBR拥塞控制算法解析

2016年底,Google发表了一篇优化tcp传输算法的文章,极大的提高了tcp得throughput,并且已经集成到Linux 4.9 内核。本文给出了论文中省略的一些背景知识,并结合自己的理解做了...
  • ebay
  • ebay
  • 2017年07月28日 14:22
  • 1187

Linux Shell编程(28)——进程替换

进程替换与命令替换很相似. 命令替换把一个命令的结果赋给一个变量,例如 dir_contents=`ls -al`或xref=$. 进程替换则是把一个进程的输出回馈给另一个进程 (换句话说,它把一个命...

C/C++常用的字符串处理函数

1.strcpy 和 strncpy char *strcpy( char *strDestination,const char *strSource); The strcpy function ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C/C++中常用的字符串处理函数和内存字符串函数
举报原因:
原因补充:

(最多只允许输入30个字)