c语言 颠倒字符串的程序,该怎么处理
c语言 颠倒字符串的程序
我是菜鸟啊,学编程没有天赋啊,求大神指教
函数reverse目的是将字符串中的字符顺序颠倒过来。但运行结果只是复制字符串,没有颠倒,求指教
#include <stdio.h>
#define MAXLINE 1000
void reverse(char line[]);
int getline(char line[],int maxline);
void main()
{
char line[MAXLINE];
while(getline(line,MAXLINE)>0)
{
reverse(line);
printf("%s",line);
}
}
void reverse(char line[])
{
int i=0;
int j=0;
char temp;
if(line[i]!='\0')
i++;
i--;
if(line[i]=='\n')
--i;
while(j<i)
{temp=line[j];
line[j]=line[i];
line[i]=temp;
i--;
j++;
}
}
int getline(char s[],int lim)
{
int i,c;
for(i=0;i<lim-1&&(c=getchar())!=EOF&&c!='\n';++i)
s[i]=c;
if(c=='\n')
{s[i]=c;
++i;
}
if(c=='\0')
s[i]=c;
return i;
}
------解决方案--------------------
要学会debug
我是菜鸟啊,学编程没有天赋啊,求大神指教
函数reverse目的是将字符串中的字符顺序颠倒过来。但运行结果只是复制字符串,没有颠倒,求指教
#include <stdio.h>
#define MAXLINE 1000
void reverse(char line[]);
int getline(char line[],int maxline);
void main()
{
char line[MAXLINE];
while(getline(line,MAXLINE)>0)
{
reverse(line);
printf("%s",line);
}
}
void reverse(char line[])
{
int i=0;
int j=0;
char temp;
if(line[i]!='\0')
i++;
i--;
if(line[i]=='\n')
--i;
while(j<i)
{temp=line[j];
line[j]=line[i];
line[i]=temp;
i--;
j++;
}
}
int getline(char s[],int lim)
{
int i,c;
for(i=0;i<lim-1&&(c=getchar())!=EOF&&c!='\n';++i)
s[i]=c;
if(c=='\n')
{s[i]=c;
++i;
}
if(c=='\0')
s[i]=c;
return i;
}
------解决方案--------------------
要学会debug