C语言问题急急急

将test5-3.c复制一份,重命名为test5-4.c:(1)在test5-4.c中,将子函数inverse中的形参“charstr[]”改写为指针类型“char*p”... 将test5-3.c复制一份,重命名为test5-4.c:
(1)在test5-4.c中,将子函数inverse中的形参“char str[]”改写为指针类型“char *p”,子函数中相应的内容也要进行改写(思考一下,如何改写?)。
(2)主函数中自函数的声明部分也要改写。(思考一下,函数调用部分要不要改写?)

test5-3.c:
#include <stdio.h>
#include <string.h>
void main()
{
void inverse(char str[]);
char string[100];
printf("input string:");
gets(string);
inverse(string);
printf("inverse string:%s\n",string);
}
void inverse(char str[])
{
char t;
int i,j,m;
m=strlen(str);
for(i=0;i<=(m-1)/2;i++)
{
j=m-1-i;
t=str[i];
str[i]=str[j];
str[j]=t;
}
}
展开
 我来答
帐号已注销
2008-05-30 · TA获得超过3000个赞
知道大有可为答主
回答量:1338
采纳率:75%
帮助的人:1299万
展开全部
void inverse(char *p )
{
char t;
int i,j,m;
m=strlen( p );
for(i=0;i<=(m-1)/2;i++)
{
j = m-1-i;
t = *( p + i );
*( p + i ) = *( p + j );
*( p + j ) = t;
}
}

编译通过。数组名就是一个指针,这点很重要。
主函数中其他部分不用修改,因为数组名就是一个指针,我试验过的。
要改肯定也能用指针实现。
void main()
{
void inverse(char str[]);
char str[100] , *p;
p = str;//注意此处
printf("input string:");
gets(p);
inverse(p);
printf("inverse string:%s\n",p);
}
其中p = str一句很重要,在使用p之前必须给其赋一个确定的值。这点学指针的时候肯定都讲过。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式