asika2004 发表于 2021-7-4 21:18:11

S1E22:指针和数组 动手第1题 strcpy问题

为什么后面的for 循环不能把*target2 copy到 *target1
前面的是识别中英文的字符
#include <stdio.h>

#define MAX 1024

int main()
{
      char str1,str2;
      char *target1 = str1,*target2 = str2;
      char ch;
      int length = 0,i,j;

      printf("请输入一个字符串:");
      fgets(str1, MAX,stdin);
      printf("请输入要考贝的字符个数:");
      scanf("%d",&j);
      while (1)
      {
                ch = *target1++;
                if (ch == '\0')
                {
                        break;
                }
                if ((int)ch < 0)
                {
                        target1 += 2;
                }
                length++;
      }
       for(i=0;(*target1++)!='\0';i++)
      {
                (*target2++) = (*target1++);
      }
      printf("str2为%s\n",str2);
      printf("target2:%s\n",*target2);
      printf("您总共输入了 %d 个字符!\n", length - 1);

      return 0;
}

asika2004 发表于 2021-7-4 21:19:41

还有感觉这个中文字符是占3个字节的。。

BngThea 发表于 2021-7-5 10:44:42

for循环中每次循环target1前进两次,而target2前进一次

asika2004 发表于 2021-7-5 22:16:21

BngThea 发表于 2021-7-5 10:44
for循环中每次循环target1前进两次,而target2前进一次

感谢老师回复{:10_277:}
页: [1]
查看完整版本: S1E22:指针和数组 动手第1题 strcpy问题