c语言中关于字符串的相关函数

头文件

#include <string.h>

1.字符串比较函数

int strcmp(const char* str1, const char* str2);

strcmp函数实际上是对字符的ASCII码进行比较 , 其中str1和str2可以是字符串常量或者字符串变量,返回值为整形,所以区分大小写。
① str1<str2,返回负值或者-1;      ② str1=str2,返回0;          ③ str1>str2,返回正值或者1;

------------------------------ strcmpi() 对两个字符串进行大小写不敏感的比较---------------------------------------

2.字符串连接函数

int strcat(char *str1 , char const *str2);

将字符串str2连接在str1后,并且str1最后的结束字符NULL会被覆盖掉,并且连接后的字符串的尾部会再增加一个NULL.注意:str1和str2所指的内存空间不能重叠,且str1要有足够的空间来容纳要复制的字符串。返回石str1字符串的首地址。

3.字符串复制函数

 char * strcpy( char *str1, char const *str2 ); //字符串复制函数

将str2所指的字符串复制到str1所指的字符串中。注意:src1和str2所指内存区域不可以重叠且str1必须有足够的空间来容纳str2的字符串。

memcpy:从源str2所指的内存地址的起始位置开始拷贝n个字节到目标str1所指的内存地址的起始位置中

void *memcpy( void *str1, void const *str2, size_t length );

strcpy和memcpy的区别:

(1)复制的内容不同,strcpy只能复制字符串,而memcpy可以复制任意内容;

(2)复制的方法不同,strcpy不需要指定长度;

(3)用途不同,字符串复制时用strcpy,复制其他类型数据时,一般使用memcpy。

4.字符串求长度

int strlen(char *s);  //s为指定的字符串 

5.字符串转数字

int atoi (const char * str);//转化成整形,头文件:#include <stdlib.h>

atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。

【返回值】返回转换后的整型数;如果 str 不能转换成 int 或者 str 为空字符串,那么将返回 0。

另外atol (将字串转换成长型数);atof (将字串转换成浮点型数) ;strtod(将字符串转成double); strtol(char *nptr,char **endptr,int base)(转化为long int);strtoul    (将字串转换成无符号32位型数)

6.数字转字符串

int sprintf( char *buffer, const char *format [, argument] ... );

sprintf 是个变参函数,除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:格式化字符串上。printf 和sprintf 都使用格式化字符串来指定串的格式,在格式串内部使用一些以“%”开头的格式说明符(format specifications)来占据一个位置,在后边的变参列表中提供相应的变量,最终函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要 的字符串。sprintf(s1, "%d", 666); //产生"666"

itoa()   将整型值转换为字符串;itoa()    将长整型值转换为字符串;ultoa()   将无符号长整型值转换为字符串

第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移数字时所用的基数)( itoa(num, str, 10);

7.小写转大写

*  int toupper( int ch );//转大写

8.大写转小写

*  int tolower( int ch );//转小写

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页