一个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 );
} 展开
#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 );
} 展开
展开全部
#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()
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()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询