当前位置: 代码迷 >> C语言 >> [求助]还是字符串的问题啊
  详细解决方案

[求助]还是字符串的问题啊

热度:114   发布时间:2006-03-16 21:18:00.0
[求助]还是字符串的问题啊

#include<stdio.h>


void main()
{
void strcopy(char *to,char *from);
char *a,*b;
gets(a);
gets(b);
printf("%s\n%s",a,b);
strcopy(a,b);
printf("\n%s\n%s\n",a,b);
}

void strcopy(char *from,char *to)
{
while(*to++=*from++);
}


无法得到a、b的字符串
要怎样才行?
谢谢^_^

搜索更多相关的解决方案: 字符  

----------------解决方案--------------------------------------------------------

读入字符串是不是不能用指针直接来哦?


----------------解决方案--------------------------------------------------------
while(*to++=*from++);
我觉得此句错误,*to++好象是从基地址开始增加。
----------------解决方案--------------------------------------------------------
楼主 gets(a); gets(b);用法有误,a,b只是指向单个字符的指针,怎能作为字符数组名呢?
----------------解决方案--------------------------------------------------------
以下是引用虫的传人在2006-3-16 21:18:00的发言:

#include<stdio.h>


void main()
{
void strcopy(char *to,char *from);
char *a,*b;
gets(a);
gets(b);
printf("%s\n%s",a,b);
strcopy(a,b);
printf("\n%s\n%s\n",a,b);
}

void strcopy(char *from,char *to)
{
while(*to++=*from++);
}


无法得到a、b的字符串
要怎样才行?
谢谢^_^

因为没有分配空间嘛~ 你改成数组肯定可以的,或者分配空间


----------------解决方案--------------------------------------------------------
以下是引用feng1256在2006-3-16 21:49:00的发言:

因为没有分配空间嘛~ 你改成数组肯定可以的,或者分配空间

谢谢版主
原来犯了一个那么低级的错误,分配空间后就可以了




#include<stdio.h>


void main()
{
void strcopy(char *to,char *from);
char *a,*b,str1[100],str2[100];
a=str1;
b=str2;
gets(a);
gets(b);
printf("Before:%s\n%s",a,b);
strcopy(a,b);
printf("\nAfter:%s\n%s\n",a,b);
}

void strcopy(char *from,char *to)
{
while(*to++=*from++);
}


----------------解决方案--------------------------------------------------------
以下是引用梦想中国在2006-3-16 21:43:00的发言:
while(*to++=*from++);
我觉得此句错误,*to++好象是从基地址开始增加。

这个句子实现复制功能,要的就是从基地址开始啊^_^
----------------解决方案--------------------------------------------------------

以下是引用haishanglang在2006-3-16 21:45:00的发言:
楼主 gets(a); gets(b);用法有误,a,b只是指向单个字符的指针,怎能作为字符数组名呢?

呵呵,可以的
可行的代码我发出来了,还是感激以上各位的发言
----------------解决方案--------------------------------------------------------
或者这样也行
[CODE]
a=(char *)malloc(size*sizeof(char)); /*size 是需要存储的最大字符个数*/
[/CODE]
----------------解决方案--------------------------------------------------------

以下是引用feng1256在2006-3-16 22:11:00的发言:
或者这样也行
[CODE]
a=(char *)malloc(size*sizeof(char)); /*size 是需要存储的最大字符个数*/
[/CODE]

呵呵,谢谢版主提点
----------------解决方案--------------------------------------------------------

  相关解决方案