字符串、字符、字节
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';