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

一、            字符处理函数

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就返回一个负值。

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

时间: 2024-10-14 04:15:27

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

【C语言】 字符串操作函数及内存拷贝函数归总

今天在这里把零散的一些常用的字符串操作函数和内存拷贝函数进行一下归总实现. 一 . 字符串操作函数 字符串操作函数有很多,这里我列举一些常用的函数,以及自实现的代码: 字符串拷贝函数: 函数原型: char* my_strcpy(char* dst,const char* src) strcpy(): char* my_strcpy(char* dst,const char* src) {     assert(dst);     assert(src);     char *ret = dst

[C] 语言字符串、文件及内存分配函数

一.字符串函数 1.gets() 头文件:#include <stdio.h> 函数原型:char *gets(char *string); 函数说明:从标准输入流(stdin)中读取整行,直至遇到换行符结束,然后丢弃换行符,储存其余字符,并在末尾加上空字符,表示一个字符串: 函数返回值:若成功则返回指向string的指针,否则返回NULL: 备注:与puts()函数配套使用:只知道string的开始出,不知道数组中有多少个元素,超出边界,容易造成缓冲区溢出. 2.fgets() 头文件:in

内存操作函数

为什么引入内存操作函数:在定义中字符串以NUL(空字节)结尾,所以字符串操作函数遇见'\0'停止.因此我们引入内存操作函数,来解决"非字符串类型"中遇到NUL(数字0)的情况. 内存操作函数:内存操作函数与字符串操作函数非常类似,只不过内存操作函数能够处理任何类型的字节序列.在内存操作函数的参数中,有一个显示的参数说明了要处理的字节数,所以他遇见NUL不会停下来. 下面介绍两种常用的内存操作函数原型: void *memcpy(void *dst,void const *src,siz

十六、函数指针初级(函数指针与函数调用)

1.函数指针 ①函数在内存中也是有地址的.函数名代表函数的内存地址 ②函数指针是指向函数的指针变量 ③函数存放在代码区 ④函数指针定义与函数声明很相似 ⑤ 函数声明:int maxValue(int x , int y); 函数指针定义:int (*p)(int x , int y); ⑥函数指针剖析 int (*p)(int x , int y) 变量定义三部分: 类型:int (*)(int x , int y) 变量名:p 初值:NULL ⑦函数的地址已经固定了,但是指针变量的地址可以来回

Js中常用的字符串,数组,函数扩展

由于最近辞职在家,自己的时间相对多一点.所以就根据prototytpeJS的API,结合自己正在看的司徒大神的<javascript框架设计>,整理了下Js中常用一些字符串,数组,函数扩展,一来可以练练手,二来也锻炼下自己的代码能力.由于代码里面的注释自认为已经非常详细,所以就直接贴代码了. 1. 字符串扩展: ;(function() { var method, stringExtends = { /** * 删除字符串开始和结尾的空白 * @returns {string} */ stri

Sql Server中常用的字符串函数

len(expression) 返回给定字符串表达式的字符(而不是字节)个数,其中不包含尾随空格. datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格length(expression,variable)指定字符串或变量名称的长度.substring(expression,start,length) 不多说了,取子串right(char_expr,int_expr) 返回字符串右边int_expr个字符concat(str1,str2,...)返回来自于参数连结

PHP开发中常用的字符串操作函数

1,拼接字符串 拼接字符串是最常用到的字符串操作之一,在PHP中支持三种方式对字符串进行拼接操作,分别是圆点.分隔符{}操作,还有圆点等号.=来进行操作,圆点等号可以把一个比较长的字符串分解为几行进行定义,这样做是比较有好处的. 2,替换字符串 在PHP这门语言中,提供了一个名字叫做substr_replace()的函数,该函数的作用可以快速的完成扫描和编辑文本内容较多的字符串替换功能.他的语法格式: mixed substr_replace(mixed $string,string $repl

LoadRunner中常用的字符串操作函数

LoadRunner中常用的字符串操作函数有:                strcpy(destination_string, source_string);               strcat(string_that_gets_appended, string_that_is_appended);51Testing软件测试网:J3~c:c[(wR%A2l               atoi(string_to_convert_to_int); //returns the integ

oracle中的常用函数、字符串函数、数值类型函数、日期函数,聚合函数。

一.字符串的常用函数. --一.oracle 字符串常用函数 --1. concat 连接字符串的函数,只能连接[两个]字符串. 字符写在括号中,并用逗号隔开! --2.“||”符号可以连接多个字符串 直接用||将多个字符链接即可. --3. dual? dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录. select concat('lo','ve')from dual; select concat('o','k')from dual; sel