| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1199 人关注过本帖
标题:[求助]TC编译的问题,请看看
只看楼主 加入收藏
anelwl
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-7-26
收藏
得分:0 
回复:(yuanyang317)明白了,感谢感谢,我就是在想那...

建议你多看些书,把程序写的规范点,这样别人和自己修正程序的时候看起来都会比较舒服,变量能不必定义的就不去定义


2007-08-08 15:13
yuanyang317
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-8-7
收藏
得分:0 
以下是引用viky2003在2007-8-8 14:34:37的发言:

还是用strncpy函数吧!!

其实我就是没给*s分配内存空间嘛,分配一个应该就对了嘛

2007-08-08 15:15
yuanyang317
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-8-7
收藏
得分:0 
以下是引用anelwl在2007-8-8 15:13:39的发言:

建议你多看些书,把程序写的规范点,这样别人和自己修正程序的时候看起来都会比较舒服,变量能不必定义的就不去定义

我现在就是在看书啊~~这不正是在学习完善阶段嘛

2007-08-08 15:16
yuanyang317
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-8-7
收藏
得分:0 
以下是引用anelwl在2007-8-8 15:06:23的发言:

下面是按着你的思路帮你修正过的程序:(已经编译通过)
#include <stdio.h>
#include <stdlib.h>
char *copy(char *x,int y)
{ char *s;
int i,j;
s=(char*)malloc(sizeof(char)); //为定义的指针分配内存地址,这是必须的
i=y;
j=0;
while(*(x+i)!='\0')
{ *(s+j)=*(x+i);
i++;
j++;
}
return(s);
}

int main()
{
char a[100],*p;
int m;
printf("the original string is:\n");
gets(a);
printf("m=");
scanf("%d",&m);
p=copy(a,m);
printf("the copyed string is:\n");
printf("%s\n",p);
return 0;
}


main函数里的return 0;只是规范标准,int main(){ return 0}你也可以不写,但是程序运行会出现warning 一个好的程序员应该尽量做到最后调试出的程序不会出现warnings!

还是不对啊,我用你这个编译,是没错误和warning,但是不能得出正确答案

2007-08-08 15:22
anelwl
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-7-26
收藏
得分:0 
我在vc++6.0下运行无错误啊!

2007-08-08 15:30
yuanyang317
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-8-7
收藏
得分:0 
以下是引用anelwl在2007-8-8 15:30:20的发言:
我在vc++6.0下运行无错误啊!

我用的TC2.0~~
当我输入字符串reading-room
m=9的时候,它输出的是一群乱码,但应该输出是room撒

2007-08-08 15:32
anelwl
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-7-26
收藏
得分:0 
编译器的问题,你把注释都删掉试试?还有程序输出的是m个字符串后的字符数,如果想把第m个字符也输出还的稍微改程序,你自己应该可以改的

2007-08-08 15:37
yuanyang317
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-8-7
收藏
得分:0 
以下是引用anelwl在2007-8-8 15:37:27的发言:
编译器的问题,你把注释都删掉试试?还有程序输出的是m个字符串后的字符数,如果想把第m个字符也输出还的稍微改程序,你自己应该可以改的

注释我删掉了的,结果还是有点错,它输出结果在正确的字母后面总有点乱码,比如说应该输出room,它输出的是room$%$$%。这是怎么回事哦?
还有,我觉得给s分配的地址只有一个字节,是不是不够?会不会是这个问题哦?但是我把它改成100,输出还是有问题,郁闷?杂回事呢?

2007-08-08 15:51
yuanyang317
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-8-7
收藏
得分:0 
怎么没人帮我看看啊~~输出结果还是有问题,拜托大家了
2007-08-08 23:07
xieyuanchang
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-8-5
收藏
得分:0 
char *copy(char *x,int y)
{ char *s;
int i,j;
s=(char*)malloc(sizeof(char)); //为定义的指针分配内存地址,这是必须的
i=y;
j=0;
while(*(x+i)!='\0')
{ *(s+j)=*(x+i);
i++;
j++;
}
return(s);
}
把传指针,改成传值行不?

2007-08-09 21:27
快速回复:[求助]TC编译的问题,请看看
数据加载中...
 
   



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

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