S1E22课后题动动手1
为什么达不到strncpy的功能#include <stdio.h>
#define MAX 1024
int main()
{
char str1;
char str2;
char *target1 = str1;
char *target2 = str2;
char ch;
int count,i=0;
printf("请输入一个字符串到 str1 中:");
fgets(str1, MAX, stdin);
printf("请输入需要拷贝的字符个数:");
scanf("%d",&count) ;
printf("开始拷贝 str1 的内容到 str2 中...\n");
for (i=0;i<count;i++)
{
ch=*target1++;
*target2++=*target1++;
if(ch=='\0')
{
break;
}
if((int)ch<0)
{
*target2++=*target1++;
}
}
*target2++='\0';
printf("拷贝完毕!");
printf("现在,str2 中的内容是:%s\n", str2);
return 0;
}
for 循环里
ch = *target1++;
此时 *target1 已经指向字符串的第二个字符了
然后你又
*target2++ = *target1++;
这是将原字符串的第二个字符赋值给 str2 的第一个字符,这能行吗? 你这样设置ch没啥用
while (count--)
{
*target2++ = *target2++;
}
当然了 你还要考虑count是否大于strlen(target1)
以及如何结尾
页:
[1]