一、            字符处理函数

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. php查找字符串首次出现的位置 判断字符串是否在另一个字符串中

    strpos - 查找字符串首次出现的位置 说明 int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) 返回 nee ...

  2. 字符串混淆技术在.NET程序保护中的应用及如何解密被混淆的字符串

    Visual Studio提供的Dotfuscator保护程序,可以对用户代码中包含的字符串进行加密.比如下面的例子,为了找到这个程序的注册算法,用.NET Reflector加载程序集后,发现代码中 ...

  3. MySQL中concat函数(连接字符串)

    MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串 ...

  4. C++string中有关字符串内容修改和替换的函数浅析

    1.assign() 原型: //string (1) basic_string& assign (const basic_string& str); //substring (2) ...

  5. String的两个API,判断指定字符串是否包含另一字符串,在字符串中删除指定字符串。

    // 在字符串中删除指定字符串. String phoneNum="1795112345"; phoneNum = phoneNum.replace("17951&quo ...

  6. shell 中函数放回字符串问题

    shell 中函数放回字符串问题 shell 中不可以直接 return 字符串 ,可以return 数字.如果要return 字符串 改为 echo "hello world" ...

  7. Scanner中next()和nextline()读取字符串方法和区别

    在实现字符窗口的输入时,我个人更喜欢选择使用扫描器Scanner,它操作起来比较简单.在写作业的过程中,我发现用Scanner实现字符串的输入有两种方法,一种是next(),一种nextLine(), ...

  8. pojg2744找一个最长的字符串x,使得对于已经给出的字符串中的任意一个y,x或者是y的子串,或者x中的字符反序之后得到的新字符串是y的子串。

    http://poj.grids.cn/practice/2744 描述现在有一些由英文字符组成的大小写敏感的字符串,你的任务是找到一个最长的字符串x,使得对于已经给出的字符串中的任意一个y,x或者是 ...

  9. BCB/Delphi中常用的VCL函数说明(字符串函数)

    本文档是ccrun(老妖)根据网上资料整理而成. --------------------内存分配--------------------函数名称:AllocMem函数说明:在队中分配指定字节的内存块 ...

随机推荐

  1. mac下显示隐藏文件

    一.在终端中 ls -a就可以查看隐藏文件. 显示和隐藏的命令例如以下: 显示:defaults write com.apple.finder AppleShowAllFiles -bool true ...

  2. Linux下Ant的安装

    OS:CentOS6.3 ant版本:apache-ant-1.9.2-bin 第1步:下载ant apache-ant-1.9.2-bin.tar.gz 第2步:解压 tar -zxvf apach ...

  3. SQLLoader3(数据文件没有分隔符时的导入)

    数据文件:D:\oracletest\ldr_tab_fiile.dat1.数据文件字段中间以制表符TAB隔开:7369 SMITH CLERK7499 ALLEN SALESMAN7521 WARD ...

  4. css-文本及其他

    <!DOCTYPE html>css7-文本和其他 text-align行内元素对齐方式,值为 左/中/右 对齐:left/right/center.test{text-align:cen ...

  5. node 安装express

    环境:win7 64位旗舰版 1 安装nodejs 2 安装npm 3 安装express 重点介绍安装express,前提是你已经安装nodejs和npm了. 1 安装express npm ins ...

  6. jquery.validate的使用

    在页面上面引用 <script type="text/JavaScript" src="js/jQuery.js"></script> ...

  7. android 注释常用标签

    javadoc: {@link ActivityGroup}   链接到包.类: {@link #setContentView} 用#链接到类成员: @return View The current ...

  8. latex 模版

    texlive2012 通过 \documentclass[a4paper]{article} %\documentclass[twocolumn]{article}   %\usepackage{g ...

  9. Centos安装php提示virtual memory exhausted: Cannot allocate memory

    由于内存不够,需要在php配置的时候./configure最后添加上 --disable-fileinfo >>./configure --prefix= ...........   -- ...

  10. java普通类如何得到spring中的bean类

    在SSH集成的前提下.某些情况我们需要在Action以外的类中来获得Spring所管理的Service对象. 之前我在网上找了好几好久都没有找到合适的方法.例如: ApplicationContext ...