| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 596 人关注过本帖
标题:关于串拷贝问题
只看楼主 加入收藏
呵呵呵。。
Rank: 2
等 级:论坛游民
帖 子:43
专家分:52
注 册:2010-6-11
结帖率:88.89%
收藏
已结贴  问题点数:10 回复次数:5 
关于串拷贝问题
/*编程实现字符串的拷贝函数StringCopy。*/

#include <stdio.h>
#include <string.h>
#include <conio.h>

/*实现字符串交换*/
void stringcopy(char *a,char *b)   
{
    char *temp=NULL;
    strcpy(temp,a);
    strcpy(a,b);
    strcpy(b,temp);
}

void main()
{
    char a[4]="abc\0",b[4]="cba\0";

    stringcopy(a,b);

    puts(a);
    puts(b);
   
}

各位高手帮看看哪错了,没有输出
搜索更多相关主题的帖子: 拷贝 
2010-06-26 13:54
xy4919961
Rank: 5Rank: 5
等 级:职业侠客
帖 子:199
专家分:362
注 册:2009-10-24
收藏
得分:2 
能输出的.而且答案也队.
 是不是你编译器问题.?
结果是a=cba; b=abc;

QQ群:96348241
2010-06-26 14:10
呵呵呵。。
Rank: 2
等 级:论坛游民
帖 子:43
专家分:52
注 册:2010-6-11
收藏
得分:0 
我晕,为什么我不能输出呢
2010-06-26 14:14
kinwyb
Rank: 4
等 级:业余侠客
帖 子:134
专家分:244
注 册:2009-3-7
收藏
得分:2 
char a[4]="abc\0",b[4]="cba\0";  LZ这有问题吧......这字符串太长了....

学习c语言痛苦!!但是要坚持~~
2010-06-26 19:02
kinwyb
Rank: 4
等 级:业余侠客
帖 子:134
专家分:244
注 册:2009-3-7
收藏
得分:0 
这程序能正确运行的话...结果应该是 a=cba b=cba 吧!!不是 a=cba b=abc ....

学习c语言痛苦!!但是要坚持~~
2010-06-26 19:11
啊C
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:84
专家分:177
注 册:2010-6-24
收藏
得分:2 
测试 你的程序有问题!
错误1:
   char a[4]="abc\0",b[4]="cba\0";
   "\0"这个字符是C语言自己加上去的,你写的C语言会把 "\"和"0"各看成字符的!共有5个字符,加    上"\0"就有6有字符了,而 " char a[4]" 只有4个!
错误2:
   char *temp=NULL;
   temp只是个指针,不是字符串,没有存字符串的内存;
解决方法有;1,用malloc()函数分配内存给temp;
            2,把指针temp改为字符串temp[];
代码如下:
第一种;
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include<stdlib.h>

/*实现字符串交换*/
void stringcopy(char *a,char *b)   
{
    char *temp=NULL;
    temp=(char*)malloc(10);
    strcpy(temp,a);
    strcpy(a,b);
    strcpy(b,temp);
}

void main()
{
    char a[4]="abc",b[4]="cba";

    stringcopy(a,b);

    puts(a);
    puts(b);
   
}
第二种:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include<stdlib.h>

/*实现字符串交换*/
void stringcopy(char *a,char *b)   
{
    char temp[10];

    strcpy(temp,a);
    strcpy(a,b);
    strcpy(b,temp);
}

void main()
{
    char a[4]="abc",b[4]="cba";

    stringcopy(a,b);

    puts(a);
    puts(b);
   
}






[ 本帖最后由 啊C 于 2010-6-26 19:56 编辑 ]

亲爱的朋友们动起手来吧,让我们一起迈向C语言的世界!
2010-06-26 19:54
快速回复:关于串拷贝问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019813 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved