投入就放过 发表于 2022-2-24 17:33:26

c语言 第22课strcpy函数功能的实现

#include <stdio.h>

#define MAX256

int main(void)
{
        char str1;
        char str2;
        char* p1 = str1;
        char* p2 = str2;
        char ch;
        int num;

        printf("请输入第一个字符串到str1中:");
        fgets(str1, MAX, stdin);

        printf("请输入需要拷贝的字符数量:");
        scanf_s("%d", &num);

        while (num-- && (*p2++=*p1++)!='\0')
        {
                ch = *p2;
                if ((int)ch < 0)
                {
                        *p2++ = *p1++;
                }
        }
        *p2 = '\0';                   //请问这里为什么不能用 str2='\0'的形式呢?
        printf("开始拷贝str1的内容到str2中...\n");
        printf("拷贝完毕!现在,str2中的内容是:%s\n", str2);

        return 0;
}

大马强 发表于 2022-2-24 17:52:11

不可以吗,我是这样认为的
*p2++ = *p1++;
这一句后就已经将*p2指针指到str2这里了
页: [1]
查看完整版本: c语言 第22课strcpy函数功能的实现