常见问题小结

错误一 越界(编译器会自动添加‘\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");
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,...
    LZM轮回阅读 3,433评论 0 6
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,534评论 3 44
  • 由于测试需要,我就特地花时间了解了一下,云测试平台的安卓APP兼容性测试。 先看看有哪些主流的测试平台吧。 腾讯W...
    砾桫_Yvan阅读 5,288评论 0 12
  • 这个16年的端午节已经结束了,上个月的一部网络剧《余罪》,我第一个带动舍友们看的【第一个看的,第一部最后一个看完的...
    航鼠洞阅读 222评论 0 0
  • 在任性辞职之后,回家呆了一个月,至今未找到工作。是自己太蠢了么?一直想,除去不喜欢的,那剩下的就是可以接受的了吧,...
    是颜夕不是夕颜啦阅读 293评论 0 0