| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1555 人关注过本帖
标题:strcpy函数与main函数的实现不了?
只看楼主 加入收藏
huangch
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:62
专家分:0
注 册:2008-7-21
收藏
 问题点数:0 回复次数:14 
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);
}
此程序在编译器中并没有错误,
但为什么编译器会没有结果呢?
请高手帮帮忙!
搜索更多相关主题的帖子: main 函数 strcpy 
2008-07-21 14:45
病书生
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2007-11-8
收藏
得分:0 
strcpy应该包含#include<string.h>吧
2008-07-21 15:05
sxn0508
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2008-1-24
收藏
得分:0 
囧,你没发现这几个字符串其实都是常量么?
2008-07-21 15:15
huangch
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:62
专家分:0
注 册:2008-7-21
收藏
得分:0 
回复 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-07-21 15:27
netsolo
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2008-3-6
收藏
得分:0 
[quote][bo][un]huangch[/un] 在 2008-7-21 14:45 的发言:[/bo]


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






2008-07-21 16:12
lingluoz
Rank: 2
来 自:苏州科技学院
等 级:新手上路
威 望:4
帖 子:749
专家分:0
注 册:2008-2-2
收藏
得分:0 
while(*a++ = *str1++) 這一句已經把a移到字符串結束的那個\0上面了
當然沒有結果哈

Murphy's Law :
If there are two or more ways to do something, and one of those ways can result in a catastrophe, then someone will do it.
2008-07-21 16:15
huangch
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:62
专家分:0
注 册:2008-7-21
收藏
得分:0 
回复 6# lingluoz 的帖子

不是很懂?
2008-07-21 16:31
huangch
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:62
专家分:0
注 册:2008-7-21
收藏
得分:0 
将程序改成这样:
#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-07-21 16:43
独孤小梦
Rank: 1
等 级:新手上路
威 望:1
帖 子:338
专家分:0
注 册:2008-6-5
收藏
得分:0 
汗,这里很容易理解!你只需要在把S,T回到原来的地方就行!
这里回到S=I LOVE!
    T=CHINA!大约就可以了!
有什么错误的,请大为指正,谢谢!

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

编程小菜
2008-07-21 16:49
huangch
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:62
专家分:0
注 册:2008-7-21
收藏
得分:0 
[bo][un]独孤小梦[/un] 在 2008-7-21 16:49 的发言:[/bo]

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

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

请问
怎样回啊??
2008-07-21 18:33
快速回复:strcpy函数与main函数的实现不了?
数据加载中...
 
   



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

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