字符串、字符、字节

1、strlen的原型

size_t strlen( char const *string);    //size_t是一个无符号数
所以:
if( strlen( x ) >= strlen( y ) )    //是可以的
if( strlen( x ) - strlen( y ) >= 0 )    //条件永真,因为无符号数相减还是无符号数,而无符号数永不为负。

2、strcpy(支持链式编程)

char *strcpy( char *dst , char const *src);    //目标区域如果不足够放下源字符串,多余的字符仍被复制,覆盖原先存储于数组后面的内存空间的值

3、strcat(支持链式编程)

char *strcat( char *dst, char const *src);    //保证目标字符数组剩余的空间足以保存整个源字符串

4、strcmp

int strcmp( char const *s1, char const *s2);    //等于0代表相等,s1>s2返回大于0(不一定是1,只是个选择)

5、长度受限的字符串函数

char *strncpy( char *dst, char const *src, size_t len);
char *strncat( char *dst, char *src, size_t len);
int strncmp(char const *s1, char const *s2, size_t len);
//strncpy将len个字符复制到dst中,如果strlen(src) < len,用NUL字节填充LEN长度
//如果strlen(src) >= len,那么只有len个字符被复制到dst中,最后一个字符并非NUL。
//在strncpy后使用strlen可能就会出错

所以,经常在数组末尾手动加上字符串结束符:

char buffer[bsize];
strncpy( buffer, name, bsize);
buffer[bisize - 1] = '\0';

 

posted @ 2017-07-27 21:24  Lunais  阅读(307)  评论(0编辑  收藏  举报