c语言的指针编程题

编写程序,利用指针运算,将字符串str1的内容赋给字符串str2(程序中不得使用字符串处理函数)main(){charstr1[10],str2[10],*p;inti;... 编写程序,利用指针运算,将字符串str1的内容赋给字符串str2(程序中不得使用字符串处理函数) main() {char str1[10],str2[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;str2[i]!='\0';i++) printf("%c",str2[i]);} 请问为什么for(i=0;*p;i++,p++) 中写*p是错的,而写i<10是正确的,说下理由 展开
 我来答
ge2008ge12
2011-11-06 · TA获得超过1110个赞
知道小有建树答主
回答量:683
采纳率:100%
帮助的人:341万
展开全部
#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);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式