谢谢指教
#include <stdio.h>
main()
{
char str1[]="Language";
char str2[9];
printf("str1[]=%s",str1);
strcpy(str2,str1);
printf("\nstr2[]=%s",str2);
}
这段程序将数组1的字符复制到数组2然后打印出来,
如果我要先往数组1任意输进一些字符(也就是数组size未定),然后strcpy到数组2再打印出来,请问能否实现?可实现的话该如何写?谢谢指教。
问题点数:50、回复次数:6Top
1 楼brucegong(飞行猪)回复于 2003-03-04 00:29:08 得分 0
考虑realloc不过我没有用过这个函数
Top
2 楼Zark(金陵五月)回复于 2003-03-04 00:32:38 得分 25
答案如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{
char str1[256];
char *pstr2=NULL;
scanf("%s",str1);
pstr2=new char[strlen(str1)+1];
printf("str1[]=%s",str1);
strcpy(str2,str1);
printf("\nstr2[]=%s",str2);
delete []pstr2;
}
(以上代码未经测试,使用者后果自负)
Top
3 楼blue_tear_11(blue_tear_)回复于 2003-03-04 00:54:10 得分 0
没有这么严重吧?!后果自负?这段东东大不了执行不了,怕它会格式化硬盘么? :)Top
4 楼chinajiji(菜鸟叽叽)回复于 2003-03-04 00:58:23 得分 20
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
char str1[255]="";
printf("enter a string ,it's length is less than 255 :\n");
gets(str1);
char *str2 = (char*)malloc(strlen(str1) + 1);
printf("str1[]=%s",str1);
strcpy(str2,str1);
printf("\nstr2[]=%s",str2);
system("PAUSE");
return 0;
}Top
5 楼chinajiji(菜鸟叽叽)回复于 2003-03-04 01:02:57 得分 0
嘿嘿,我忘了free(str2)了.Top
6 楼chinajiji(菜鸟叽叽)回复于 2003-03-04 01:05:59 得分 5
加句:
if(str2 == NULL) exit(-1);就不怕出问题了.Top




