超级简单
#include<stdio.h>#define MAX 1024
int main()
{
char str1,str2;
char *target1=str1,*target2=str2;
int i,a=1;
printf("请输入一个字符串到str1中:\n");
fgets(str1,MAX,stdin);
printf("请输入要拷贝的字数:\n");
scanf("%d\n",&i);
while(a<=i)
{
a++;
*target2++=*target1++;
}
printf("正在复制.....");
getchar();
printf("拷贝完毕,现在str2里面的内容是%s",str2);
}
//哪里出了问题? {
a++;
*target2++=*target1++;
}
* target2 = '\0' ; // 添加此句试试 本帖最后由 风过无痕1989 于 2020-11-26 13:51 编辑
#include<stdio.h>
#include<string.h> // 后面程序用到了 strlen(),要添加头函数
#define MAX 1024
int main()
{
char str1, str2;
char *target1 = str1, *target2 = str2;
int i, a = 0;
printf("请输入一个字符串到str1中:\n");
fgets(str1, MAX, stdin);
printf("请输入要拷贝的字数:\n");
scanf("%d", &i); // 格式控制除控制字符外,不要添加任何其他的字符!
while (i <= strlen(str1))
{
a++;
*target2++ = *target1++;
}
printf("正在复制.....");
getchar();
printf("拷贝完毕,现在str2里面的内容是%s", str2);
} jackz007 发表于 2020-11-26 10:36
不行,还是一样打印不出来 风过无痕1989 发表于 2020-11-26 10:56
也不行,会报错 严凯 发表于 2020-11-26 13:24
也不行,会报错
若有报错,那就是第 8 行的变量 a 没有赋初值(上面的程序,我已经修改了)。没有赋初值,有些程序可以正常输出,有些程序则不行,而且各编译器的情况还不相同。下面是我在没有修改第 8 行时的输出
风过无痕1989 发表于 2020-11-26 13:56
若有报错,那就是第 8 行的变量 a 没有赋初值(上面的程序,我已经修改了)。没有赋初值,有些程序可以正 ...
屏幕截图 2020-11-26 144241 这没有出现错误,在我这边是没有问题的。由于你使用了getchar();那是需要你在键盘上再按一次按键,然后回车才能看到结果 奇宝 发表于 2020-11-26 15:40
这没有出现错误,在我这边是没有问题的。由于你使用了getchar();那是需要你在键盘上再按一次按键,然后 ...
我这边还是没有用,按了3次回车都没有显示
页:
[1]