求助!
#include <stdio.h>#define MAX 1024
int main()
{
char str1,str2;
char *target1 = str1,*target2=str2;
char cum;
int ch;
printf("请输入一个字符串到str1:");
fgets(str1, MAX, stdin);
printf("请输入需要拷贝的字符数量:");
scanf("%d",&ch);
printf("开始拷贝 str1 的内容到 str2 中...\n");
while(cum=*target1 && (*target2++ = *target1++)!='\0' && ch>0)
{
ch--;
if((int)cum<0)
{
*target2++ = *target1++;
}
}
printf("拷贝完毕!\n现在str2中的内容是:%s",str2);
return 0;
}
结果是错的
但是怎么想都不知道代码哪里有问题。。 while( ch>0&&(cum=*target2++ = *target1++)!='\0' )
{
ch--;
if(cum<0)
{
*target2++ = *target1++;
}
}
if(*target2)*target2='\0'; jhq999 发表于 2022-7-3 19:13
为什么while( ch>0&&(cum=*target2++ = *target1++)!='\0' )就可以,而while(cum=*target1 && (*target2++ = *target1++)!='\0' && ch>0)就不行?
gandixiwang 发表于 2022-7-4 12:16
为什么while( ch>0&&(cum=*target2++ = *target1++)!='\0' )就可以,而while(cum=*target1 && (*target2+ ...
了解一下逻辑短路
页:
[1]