当前位置: 代码迷 >> C语言 >> 为什么主函数调用reverse函数而没有执行操作啊?
  详细解决方案

为什么主函数调用reverse函数而没有执行操作啊?

热度:211   发布时间:2006-11-25 16:52:58.0
为什么主函数调用reverse函数而没有执行操作啊?

#include<stdio.h>
#define MAX 100
int getline(char s[],int li
m);
void reverse(char [],int lim);

main()
{
int len = 0;
char line[MAX];
while((len=getline(line,MAX))>0)
printf("该行包含的字符数为:%d",len);
reverse(line,len);
}

int getline(char s[],int lim)
{
int i,c;
for(i = 0;i<MAX-1 && (c = getchar()) != EOF && c != '\n';++i)
s[i] = c;
if(c == '\n'){
++i;
s[i] = '\0';
}
printf("getline\n");
return i;
}

void reverse(char from[],int lim)
{

char rev[MAX];
int i =0 ;
int j = lim;
while(j>0)
rev[i] = from[j];
++i;
--j;

printf("%s",rev);
}

搜索更多相关的解决方案: 函数  reverse  

----------------解决方案--------------------------------------------------------
以下是引用adukakaxi在2006-11-25 16:52:58的发言:

#include<stdio.h>
#define MAX 100
int getline(char s[],int li
m);
void reverse(char [],int lim);

main()
{
int len = 0;
char line[MAX];
while((len=getline(line,MAX))>0)
printf("该行包含的字符数为:%d",len);
reverse(line,len);
}

int getline(char s[],int lim)
{
int i,c;
for(i = 0;i<MAX-1 && (c = getchar()) != EOF && c != '\n';++i)
s[i] = c;
if(c == '\n'){
++i;
s[i] = '\0';
}
printf("getline\n");
return i;
}

void reverse(char from[],int lim)
{

char rev[MAX];
int i =0 ;
int j = lim-1;
while(j>=0)
{ rev[i] = from[j];
++i;
--j;
}
//这里再给rev[lim]='\0';

printf("%s",rev);

}

小问题要注意.


----------------解决方案--------------------------------------------------------
  相关解决方案