ラインを逆転リバース機能ではあるが主な機能には置かれていない。ループ内私は、文字列(K & R)を逆転しようとしていたが、私がメインでのprintfを使用しようとすると、それは何も出力しませんが、 が、私は逆の機能でのprintfを使用しようとするとき、それはプリントがかかる理由混乱works.Its
#include<stdio.h>
#define MAXLINE 1000
void reverse(char*);
int getlen(char*,int);
void main()
{
int i=0;
char line[MAXLINE];
printf("\nEnter anything\n");
while((getlen(line,MAXLINE))>1)
{
reverse(line);
}
printf("%s",line);//problem here
}
int getlen(char line[],int len)
{
int c,i=0;
while((c=getchar())!=EOF && c!='\n' && (i<(len-2)))//last two for \n and \0
{
line[i]=c;
++i;
}
if(c=='\n')
{
line[i]=c;
++i;
}
line[i]='\0';
return(i);//returns 1 if nothing is written
}
void reverse(char line[])
{
int i=0,j=0;
char temp;
while(line[i]!='\0')
++i;
--i;
if(line[i]=='\n')
--i;
while(j<i)
{
temp=line[j];
line[j]=line[i];
line[i]=temp;
++j;
--i;
}
}
コンパイラの警告はありますか? – user3078414
++ i; --i;これは何ですか? – Boltz0r
@ Boltz0r欠落しているカッコに注意してください.... –