| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 489 人关注过本帖
标题:strcpy函数与main函数的实现不了?
收藏  订阅  推荐  打印
huangch
Rank: 2
等级:注册会员
帖子:42
积分:532
来自:肇庆学院网络工程系
注册:2008-7-21
strcpy函数与main函数的实现不了?

#include<stdio.h>

char strcpy(char *s, char *t)
{
    while (*s++ = *t++)
        ;
    return *s;
}

void main()
{
    char *s = "I love ";
    char *t = "China!";
    char *a = " ";

    strcpy(s, t);
    while(*a++ = *s++)
         ;
    printf("%s\n",a);
}
此程序在编译器中并没有错误,
但为什么编译器会没有结果呢?
请高手帮帮忙!
2008-7-21 14:45
病书生
Rank: 2
等级:注册会员
帖子:93
积分:1150
注册:2007-11-8

strcpy应该包含#include<string.h>吧
2008-7-21 15:05
sxn0508
Rank: 2
等级:注册会员
帖子:117
积分:1675
注册:2008-1-24

囧,你没发现这几个字符串其实都是常量么?
2008-7-21 15:15
huangch
Rank: 2
等级:注册会员
帖子:42
积分:532
来自:肇庆学院网络工程系
注册:2008-7-21
回复 3# sxn0508 的帖子

本人刚学c的;
我大概根据师兄你的提示;
将程序改为:
#include<stdio.h>
#include<string.h>

void strcpy(char *s, char *t)
{
    while (*s++ = *t++)
        ;
}

void main()
{
    char *str1 = "I love ";
    char *str2 = "China!";
    char *a = " ";

    strcpy(str1, str2);
    while(*a++ = *str1++)
         ;
    printf("%s\n",a);
}
可编译器还是没有结果?
究竟是什么原因?
要怎样修改才行?
2008-7-21 15:27
netsolo
Rank: 3Rank: 3
等级:中级会员
帖子:116
积分:2026
注册:2008-3-6

[quote]huangch 在 2008-7-21 14:45 的发言:


    char *s = "I love ";
    char *t = "China!";
    char *a = " ";






2008-7-21 16:12
lingluoz
Rank: 4
等级:高级会员
帖子:613
积分:6578
威望:3
来自:苏州科技学院
注册:2008-2-2

while(*a++ = *str1++) 這一句已經把a移到字符串結束的那個\0上面了
當然沒有結果哈

MAY 1, 1964 -- The Birth of BASIC
Over 40 years later, it still enables ANYONE to write their own programs.
P.S. 革命尚未成功 同志仍需努力
2008-7-21 16:15
huangch
Rank: 2
等级:注册会员
帖子:42
积分:532
来自:肇庆学院网络工程系
注册:2008-7-21
回复 6# lingluoz 的帖子


不是很懂?
2008-7-21 16:31
huangch
Rank: 2
等级:注册会员
帖子:42
积分:532
来自:肇庆学院网络工程系
注册:2008-7-21

将程序改成这样:
#include<stdio.h>
#include<string.h>

void strcpy(char *s, char *t)
{
    while (*s++ = *t++)
        ;
}

void main()
{
    char *str1 = "I love ";
    char *str2 = "China!";

    strcpy(str1, str2);
    printf("%s\n",str1);
}
还是看不出结果来?
究竟错在哪里?
2008-7-21 16:43
独孤小梦
Rank: 3Rank: 3
等级:中级会员
帖子:255
积分:2958
注册:2008-6-5

汗,这里很容易理解!你只需要在把S,T回到原来的地方就行!
这里回到S=I LOVE!
    T=CHINA!大约就可以了!
有什么错误的,请大为指正,谢谢!

[ 本帖最后由 独孤小梦 于 2008-7-21 16:50 编辑 ]

编程小菜
2008-7-21 16:49
huangch
Rank: 2
等级:注册会员
帖子:42
积分:532
来自:肇庆学院网络工程系
注册:2008-7-21

引用:
独孤小梦 在 2008-7-21 16:49 的发言:

汗,这里很容易理解!你只需要在把S,T回到原来的地方就行!
这里回到S=I LOVE!
    T=CHINA!大约就可以了!
有什么错误的,请大为指正,谢谢!

[ 本帖最后由 独孤小梦 于 2008-7-21 16:50  ...
请问
怎样回啊??
2008-7-21 18:33
共有 488 人关注过本帖
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.051517 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved