C和指针读书笔记——字符串、字符和字节

来源:互联网 发布:简单网络爬虫工具 编辑:程序博客网 时间:2024/05/17 22:06

1、NUL字节是字符串的终止符,但它本身并不是字符串的一部分,所以字符串的长度并不包括NUL字节;

2、 strlen函数返回一个类型为size_t的值,这是一个无符号整数类型,在表达式中使用无符号数可能导致不可预料的结果,如下:

if(strlen(x) >= strlen(y)) ...if(strlen(x) - strlen(y) >= 0) ...
    第一条语句没有问题,但是第二条语句的结果将永远是真的,strlen的结果是一个无符号数,所以相减的结果也是无符号数,而无符号数绝不可能是负的;

3、用于复制字符串的strcpy原型:

char *strcpy(char *dst, char const *src);
     由于dst参数将进行修改,所以它必须是一个字符数组或者是一个指向动态分配内存的数组指针,不能使用字符串常量;使用这个函数时,必须保证目标字符数组的空间足以容纳需要复制的字符串;

4、strcpy与strcat都返回一个第一个参数的一份拷贝,就是一个指向目标字符数组的指针,因此可以嵌套调用这两个函数;

5、在使用strncpy函数时,最好按如下的方法:

strncpy(buffer, name, size);buffer[size - 1] = '\0';
这样可以保证buffer中的字符串是以NUL结尾的;

6、strncat与strncpy不同,strncat总是在结果字符串后面加上一个NUL字符;


原创粉丝点击