C语言字符串复制问题

#include<stdio.h>voidmain(){char*a="Iamateacher.";char*b="Youareastudent.";printf("st... #include <stdio.h>
void main()
{
char *a="I am a teacher. ";
char *b="You are a student. ";
printf("string a=%s",a);
printf("\nstring b=%s\n",b);
for(;*a!='\0';)
{
*b++=*a++;
}
*b=0;
printf("\nresult string a=%s",a);
printf("\nresult string b=%s",b);
}
这个还是正在上课的老师写的代码呢,真是无语了。我自己也找不出原因,不过可以确定的是复制的那个地方出问题了、在线等啊!
*b='\0';不小心搞漏掉了
展开
 我来答
HongZe081100
推荐于2016-01-09 · TA获得超过580个赞
知道小有建树答主
回答量:436
采纳率:0%
帮助的人:438万
展开全部
#include <stdio.h>
void main()
{
char *a="I am a teacher. ";//a指向字符常量区字符串,通过指针不能改变它的内容
// char *b="You are a student. ";下面有赋值操作,不能是常量字符串

char b[]="You are a student. ";//字符数组
printf("string a=%s",a);
printf("\nstring b=%s\n",b);
char *t=b;//指向数组首端
//*
for(;*a!='\0';)
{
*t++=*a++;
}
//*/和下面的效果相同
/*
while(*a!='\0')
{
*t++=*a++;
}
// */
*t=0;//加结束符,空终止字符串
printf("\nresult string a=%s",a);//指针a指向'\0',显示为空
printf("\nresult string b=%s",b);
printf("\n");
}
百度网友e96ae71ed
2012-08-27 · TA获得超过728个赞
知道小有建树答主
回答量:1548
采纳率:0%
帮助的人:723万
展开全部
void main()
{
char *a="I am a teacher. ";
char b[]="You are a student. ";
char *p,*q;
printf("string a=%s",a);
printf("\nstring b=%s\n",b);

for(p=b,q=a;*q!='\0';)
{
*p++=*q++;
}
*p=0;
printf("\nresult string a=%s",a);
printf("\nresult string b=%s\n",b);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
riyue71
2012-08-27
知道答主
回答量:16
采纳率:0%
帮助的人:8.5万
展开全部
你时把a复制到b把,你在b的字符串后面没有家结束标记
在for循环里加

#include <stdio.h>
void main()
{
char a[]="I am a teacher. ";
char b[]="You are a student. ";
char *s,*t;
s=a;t=b;
printf("string a=%s",a);
printf("\nstring b=%s\n",b);
while(*s!='\0')
{
*t++=*s++;
}
*t++='\0';
printf("\nresult string a=%s",a);
printf("\nresult string b=%s",b);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
周生008
2012-08-27 · TA获得超过1222个赞
知道小有建树答主
回答量:1329
采纳率:0%
帮助的人:646万
展开全部
你加了'\0'能过?
你把a,b的值改变了,最后打印的时候怎么能找到字符串的首地址呢?
要另外设置两个指针变量进行赋值过程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jelly279
2012-08-27 · TA获得超过244个赞
知道小有建树答主
回答量:332
采纳率:0%
帮助的人:97.5万
展开全部
这样声明的字符串相当于const类型的,只能访问不能操作, 所以把b换成数组吧.就是在栈区了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式