C字符串处理函数

来源:互联网 发布:如何开通淘宝贷款 编辑:程序博客网 时间:2024/04/25 17:41

1、字符串长度strlen()

原型为:

size_tstrlen(
   const char *str
);
//size_t_int64或者unsignedint,取决于平台环境

注意:strlen得到的是除字符串结束标记(string terminator / nullcharacter)外的所有字符的个数.

2、字符串大小写转换struprstrlwr

原型为:

char *strupr(

char *str

);

char *strlwr(
   char * str
);

返回值和函数的参数一样.

3、字符串复制函数strcpystrncpystrcpy_s

原型为

char *strcpy(char*strDestination,constchar*strSource);

char *strncpy(char*strDest,constchar*strSource,size_tcount);

errno_t strcpy_s(
   char *strDestination,
   size_t numberOfElements,
   const char *strSource
);

前两个函数分别返回strDestinationstrDest.最后一个返回错误信息.

strncpy函数可以控制需要复制的字符个数,程序员可以通过这个参数提高程序的安全性,不过在VC2005及以上版本中仍然会有一个警告,因为如果程序员自身在设置这个参数时出错的话(比如设置的字符个数超出缓冲区可以容纳的字符个数),这个函数还是会像strcpy一样执行。 

strcpy_s函数需要缓冲区可以容纳的字符个数作为其参数之一,这样可以帮助程序员检查复制时的安全性,如果缓冲区容量不足,程序在运行时将抛出异常。这样的做法在字符串复制时安全性是最高的(不过也需要程序员准确表示出缓冲区的大小)。同样我们也可以通过assert的方法来提高使用strcpy和strncpy时的安全性。strcpy_s函数是VC++中推荐的安全函数.

4、字符串比较函数strcmp_stricmp

int strcmp(constchar*string1,constchar*string2);

函数返回string1string2在词典中(如果将两个字符串按词典索引顺序放入词典中的话)的顺序关系.如下

Value

Relationship of string1 to string2

< 0

string1 less thanstring2

0

string1 identical tostring2

> 0

string1 greater thanstring2

_stricmp对字符串中字母的大小写不敏感(insensitive).

5、字符串连接函数strcatstrncat

char *strcat(

char *strDestination,
   const char *strSource

);

char *strncat(
   char *strDest,
   const char *strSource,
   size_t count
);

strncat中的count参数指明要附加的字符个数,如果count >strlen(strSource) + 1count会被strlen(strSource)+ 1取代。

6、其他不常用函数,包括将字符串转换成数字的函数、字符检测函数、字符大小写转换函数等。