字符串复制 C语言

来源:百度知道 编辑:UC知道 时间:2024/06/10 08:14:26
#include"stdio.h"
main()
{ char str[10];
char a[10];
int i,j;
gets(str);
for(i=0;i<10;i++)
{ while(str[i]!='\0')
{ j=i;
a[j]=str[i];
}
}
a[j+1]='\0';
puts(a);
getch();
}

这个程序运行不出来结果,
为什么啊?
str的值已经用gets从键盘上取了啊。

楼主啊,我晕了
你用了for里面就不用在while了,否则只要进入while的循环你就没办法跳出,因为你写的while循环都没有改变终止条件,一旦str[i]!='\0'进入循环以后,你既没有改变i的值,也没有改变str[i]的值,所以就在里面死循环了。
建议中间while部分替换成一下语句
for(i=0;i<10;i++)
{
if(str[i]!='\0')
{
j=i;
a[j]=str[i];
}
}
楼主试一下吧

在puts(a)之前你的str没有赋初值,程序在while里面死循环了,

不是有 strcpy 吗?