《C程序设计语言》第二版练习1-19参考程序,请各位大神指教
#C菜的程序练习
//编写函数reverse(s)将字符串s中的字符顺序颠倒过来且每次只颠倒一个输入行中的字符顺序。
#include <stdio.h>
#include <string.h>
#define LINE 1000
int *reverse(char *s);
int getline(char a[], int n);
int main(void)
{
int lines = 0;
char l[LINE];
while ((lines = getline(l, LINE))>0)
{
printf("These characters is:%s\n", l);
reverse(l);
printf("Now these characters is:%s\n", l);
}
return 0;
}
//读取一行输入,并返回其长度
int getline(char a[], int n)
{
int i, c;
for (i = 0; i<LINE - 1 && (c = getchar()) != EOF && c != '\n'; i++)
a[i] = c;
/*if(c=='\n')
a[i++]=c;*/
a[i++] = '\0';
return i;
}
//使字符串倒序的函数
int *reverse(char *s)
{
int i;
char tmp;
int length = strlen(s);
for (i = 0; i<length / 2; i++)
{
tmp = s[length - i - 1];
s[length - i - 1] = s[i];
s[i] = tmp;
}
s[length] = '\0';
return 0;
}