1、字符串长度strlen()
原型为:
size_tstrlen(
const char *str
);//size_t是_int64或者unsignedint,取决于平台环境
注意:strlen得到的是除字符串结束标记(string terminator / nullcharacter)外的所有字符的个数.
2、字符串大小写转换strupr、strlwr
原型为:
char *strupr( char *str ); | char *strlwr( |
返回值和函数的参数一样.
3、字符串复制函数strcpy、strncpy、strcpy_s
原型为
char *strcpy(char*strDestination,constchar*strSource);
char *strncpy(char*strDest,constchar*strSource,size_t count);
errno_t strcpy_s(
char *strDestination,
size_t numberOfElements,
const char *strSource
);
前两个函数分别返回strDestination和strDest.最后一个返回错误信息.
strncpy函数可以控制需要复制的字符个数,程序员可以通过这个参数提高程序的安全性,不过在VC2005及以上版本中仍然会有一个警告,因为如果程序员自身在设置这个参数时出错的话(比如设置的字符个数超出缓冲区可以容纳的字符个数),这个函数还是会像strcpy一样执行。
strcpy_s函数需要缓冲区可以容纳的字符个数作为其参数之一,这样可以帮助程序员检查复制时的安全性,如果缓冲区容量不足,程序在运行时将抛出异常。这样的做法在字符串复制时安全性是最高的(不过也需要程序员准确表示出缓冲区的大小)。同样我们也可以通过assert的方法来提高使用strcpy和strncpy时的安全性。strcpy_s函数是VC++中推荐的安全函数.
4、字符串比较函数strcmp、_stricmp
int strcmp(constchar*string1,constchar*string2);
函数返回string1和string2在词典中(如果将两个字符串按词典索引顺序放入词典中的话)的顺序关系.如下
Value | Relationship of string1 to string2 |
< 0 | string1 less thanstring2 |
0 | string1 identical tostring2 |
> 0 | string1 greater thanstring2 |
_stricmp对字符串中字母的大小写不敏感(insensitive).
5、字符串连接函数strcat、strncat
char *strcat( char *strDestination, ); | char *strncat( |
strncat中的count参数指明要附加的字符个数,如果count >strlen(strSource) + 1,count会被strlen(strSource)+ 1取代。
6、其他不常用函数,包括将字符串转换成数字的函数、字符检测函数、字符大小写转换函数等。