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';不小心搞漏掉了 展开
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';不小心搞漏掉了 展开
6个回答
展开全部
#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");
}
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");
}
展开全部
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);
}
{
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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你时把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);
}
在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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你加了'\0'能过?
你把a,b的值改变了,最后打印的时候怎么能找到字符串的首地址呢?
要另外设置两个指针变量进行赋值过程
你把a,b的值改变了,最后打印的时候怎么能找到字符串的首地址呢?
要另外设置两个指针变量进行赋值过程
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样声明的字符串相当于const类型的,只能访问不能操作, 所以把b换成数组吧.就是在栈区了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询