美文网首页
常见问题小结

常见问题小结

作者: 带着白卡去旅行 | 来源:发表于2018-09-06 10:21 被阅读11次

    错误一 越界(编译器会自动添加‘\0’)
    字符串大小问题 需要注意留出分配'\0'的空间内存

    #include<stdlib.h>
    #include<stdio.h>
    #include<string.h>
    int main()
    {
        char p[3] = "123";//字符串大小问题  需要注意留出分配'\0'的空间内存
    应该是  char[4]='123';
        printf("p:%s",p); 
    
    printf("hello...\n");
    system("pause");
    }
    

    错误二
    判断指针变量 而不是判断指针变量的地址

    void copy_str21(char *from, char *to)
    {
    
        if (*from = '\0' || *to!=’\0’) 
        {
            Printf(“func copy_str21() err\n”);
            return; 
        }
    应该是:
    判断指针变量  而不是判断指针变量的地址
    If(from==’\0’||to==’\0’)
    {
    Printf(“func copy_str21() err\n”);
            return;
    }
    

    字符串的拷贝
    错误点
    【思想 通过指针来简介的修改 str2的值】
    在main函数中 应该定义的是 char*str1
    而且:注意的是 字符串形参不要轻易改变 所以加 const
    char *str1 = "hello";
    char str2[10];
    //char str1 ="123";
    //char str2[4];

    #include<stdlib.h>
    #include<stdio.h>
    #include<string.h>
    
    
    void Mystrcpy(char *dst, const char *src)
    {
        
        if (dst == NULL && src == NULL)
        {
            return;
        }
    
        while (*src != '\0')
        {
            *dst = *src;
            dst++;
            src++;
        }
        *dst = '\0';
        printf("%s",dst);
    }
    
    int main()
    {
        char *str1 = "hello";
        char str2[10];
        //char str1 ="123";
        //char str2[4];
        Mystrcpy(str2, str1);
        printf("%s", str2);
      //  printf("hello...\n");
        system("pause");
    }
    

    相关文章

      网友评论

          本文标题:常见问题小结

          本文链接:https://www.haomeiwen.com/subject/csbtgftx.html