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;
}
} 展开
(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;
}
} 展开
展开全部
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之前必须给其赋一个确定的值。这点学指针的时候肯定都讲过。
{
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之前必须给其赋一个确定的值。这点学指针的时候肯定都讲过。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询