关于c语言字符串

来源:互联网 发布:免费的vpn软件 编辑:程序博客网 时间:2024/05/18 01:47

 1. strlen(char *str) 返回str中除去结束字符/0的字符数
2. 系统对所有""号内的字符串,无论是全局的和局部的,都会在字符串区域开辟一块内存。例如:
     char *p = "hello";
     系统为hello开辟一块内存,并把p指向这块内存。
3. 初始化动态分配的字符串不能使用=,应使用strcpy,例如把world追加到hello的末尾:

    // 正确的方法
    char *p = (char *)malloc(11);
    char *str = "world";
    strcpy(p, "hello");    /* 要这样赋值 */
    strcat(p, str);

 

    // 错误的方法
    char *p = (char *)malloc(11);
    char *str = "world";
    p = "hello";    /* 只是改变p所指的存储区(由堆区到字符串常量区),但没有初始化新分配的字符串 */
    strcat(p, str);
5. strcat(char *str1, char *str2)不会动态的增加str1的长度,调用strcat函数时要保证目标串有足够的可以容纳目标串与源串连    接起来的整个串的长度,另外str1不能为空串,