c语言指针的编程题

编写程序,利用指针运算,将字符串str1的内容赋给字符串str2(程序中不得使用字符串处理函数)main(){charstr1[10],str[10],*p;inti;p... 编写程序,利用指针运算,将字符串str1的内容赋给字符串str2(程序中不得使用字符串处理函数)
main()
{char str1[10],str[10],*p;
int i;
p=str1;
for(i=0;i<10;i++)
scanf("%c",&str1[i]);
for(i=0;*p;i++,p++)
str2[i]=*p;
str2[i]='\0';
for(i=0;i!='\0';i++)
printf("%c",&str2[i]);}
请问这个程序错在哪里,请大家帮我指出来下。
展开
 我来答
仰群沐冷菱
2019-09-15 · TA获得超过3704个赞
知道大有可为答主
回答量:3065
采纳率:26%
帮助的人:194万
展开全部
#include<stdio.h>
void
main()
{
char
str1[10],str2[10],*p;
int
i;
p=str1;
for(i=0;i<9;i++)
scanf("%c",&str1[i]);
str1[i]=
'\0';////该在str1[i]最后加一个'\0'要下面的结束for(i=0;*p;i++,p++)
就找不到结束符,所以后面就有乱码“烫烫”
for(i=0;*p;i++,p++)///你可以用i<10来直接截取字符的前十位是可以的但是只是截取,其实真是的str2仍然后面有乱码
str2[i]=*p;
str2[i]='\0';
printf("%s\n",str2);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wbcg00
2008-11-09 · TA获得超过856个赞
知道小有建树答主
回答量:609
采纳率:100%
帮助的人:493万
展开全部
1.scanf赋值时把数组填满了,哪有结束标志。赋值给str1时应该用个数控制而不是结束标记。最后那个打印也有问题,for里面判断语句有问题,输出语句输出的是地址,你却用%c,是不是笔误啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lmocvce
2008-11-09 · TA获得超过1385个赞
知道小有建树答主
回答量:393
采纳率:0%
帮助的人:448万
展开全部
是不是这个?
printf("%c",&str2[i]);
要把&去掉。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不如单身
2008-11-09 · 超过31用户采纳过TA的回答
知道答主
回答量:133
采纳率:0%
帮助的人:97.7万
展开全部
程序中的str2未定义!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kelvinlau1990
2008-11-09
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
for(i=0;str2[i]!='\0';i++)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式