一个C语言程序改错题

sub函数的功能是:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。例如,当s所指字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”... sub函数的功能是:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。例如,当s所指字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。请改正函数sub中的两个错误,使它能得出正确的结果。注意:不要改动main 函数,不得增行或删行,也不得修改程序的结构。
#include "stdio.h"
#include "conio.h"
#include "string.h"
void sub( char *s, char *t )
{
int i, d;
d=strlen( s );
for( i=1; i< d ; i++ )
t[i]=s[d-1-i] ;
for( i=0; i<d; i++ )
t[d+i]=s[i] ;
t[2*d]='/0' ;
}
main( )
{
char s[100], t[100];
clrscr( ) ;
printf( " \n Please enter string S : " );
scanf("%s" , s );
sub(s,t) ;
printf( " \n The result is : %s \n ", t );
}
展开
 我来答
真爱破梦
2009-12-05 · 超过11用户采纳过TA的回答
知道答主
回答量:28
采纳率:0%
帮助的人:0
展开全部
#include "string.h"
void sub(char*s,char*t)
{
int i,d;
d=strlen(s);
for(i=0;i<d;i++) \*把s中字符倒序存入t数组*\
t[i]=s[d-1-i];
for(i=0;i<d;i++) \*把 s中字符正序存入t数组 不过有点麻烦,可以直接拷贝strcmp(t,s),加快运行速度*\
t[d+i]=s[i];
t[2*d]='\0';
}
main()
{
char s[100], t[200];
printf( "\n Please enter string S:"); \*t数组应该是s的二倍*\
scanf("%s",s);
sub(s,t);
printf("\n The result is:%s \n ",t);
}

for(i=1;i<d;i++) i=1改为i=0 因为数组第一个元素是从零开始的;
'/n'改为 '\n' /是一个字符,而\ 后跟 n,b, ,…………是功能字符
还有如果在c++里边应该去掉clrscr()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yiyerensheng
2009-12-04 · TA获得超过604个赞
知道小有建树答主
回答量:292
采纳率:100%
帮助的人:366万
展开全部
1.
for( i=1; i< d ; i++ )
改为
for( i=0; i<d; i++ )

2.
t[2*d]='/0' ;
改为
t[2*d]='\0';

//你用的是Turbor c 吗,clrscr( ) ;
只有在Turbor c 中可以运行,我说怎么在VC里会有错,汗~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式