C语言函数调用问题(可追加100分)
1个回答
展开全部
错的比较多,要注意到printf("The
result
is:
%s\n",
str);这句,说明逆序是在原字符数组上的,不能用一个临时数组。
下面是修改过的代码:
#include<stdio.h>
#include<string.h>
/*
本部分代码功能建议:函数原型声明
*/
/*
User
Code
Begin(Limit:
lines<=1,
lineLen<=50,
考生可在本行后添加代码、最多1行、行长<=50字符)
*/
char
*ABC(char
*str1);
/*是否有误?????*/
/*
User
Code
End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进)
*/
int
main(void)
{
char
str[128];
printf("Input
a
string:
");
gets(str);
/*
本部分代码功能建议:调用用户自定义函数将字符串str逆序存放
*/
/*
User
Code
Begin(Limit:
lines<=1,
lineLen<=50,
考生可在本行后添加代码、最多1行、行长<=50字符)
*/
ABC(str);
/*是否有误?????*/
/*
User
Code
End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进)
*/
printf("The
result
is:
%s\n",
str);
return
0;
}
/*
User
Code
Begin(考生在此后根据设计需要完成程序的其它部分,如函数的定义,行数不限)
*/
char
*ABC(char
*str1)
/*本段及其以下是否有误?????*/
{
int
len
=
0,
i;
char
t;
while
(str1[len])
len++;
len--;
for
(i
=
0;
i
<
len;
i++,
len--)
{
t
=
str1[i];
str1[i]
=
str1[len];
str1[len]
=
t;
}
return
str1;
}
result
is:
%s\n",
str);这句,说明逆序是在原字符数组上的,不能用一个临时数组。
下面是修改过的代码:
#include<stdio.h>
#include<string.h>
/*
本部分代码功能建议:函数原型声明
*/
/*
User
Code
Begin(Limit:
lines<=1,
lineLen<=50,
考生可在本行后添加代码、最多1行、行长<=50字符)
*/
char
*ABC(char
*str1);
/*是否有误?????*/
/*
User
Code
End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进)
*/
int
main(void)
{
char
str[128];
printf("Input
a
string:
");
gets(str);
/*
本部分代码功能建议:调用用户自定义函数将字符串str逆序存放
*/
/*
User
Code
Begin(Limit:
lines<=1,
lineLen<=50,
考生可在本行后添加代码、最多1行、行长<=50字符)
*/
ABC(str);
/*是否有误?????*/
/*
User
Code
End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进)
*/
printf("The
result
is:
%s\n",
str);
return
0;
}
/*
User
Code
Begin(考生在此后根据设计需要完成程序的其它部分,如函数的定义,行数不限)
*/
char
*ABC(char
*str1)
/*本段及其以下是否有误?????*/
{
int
len
=
0,
i;
char
t;
while
(str1[len])
len++;
len--;
for
(i
=
0;
i
<
len;
i++,
len--)
{
t
=
str1[i];
str1[i]
=
str1[len];
str1[len]
=
t;
}
return
str1;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询