Перевод: Напишите функцию reverse(s), размещающую символы в строке s в обратном порядке. Примените ее при написании программы, которая каждую вводимую строку располагает в обратном порядке.
Оригинал: Write a function reverse(s) that reverses the character string s. Use it to write a program that reverses its input a line at a time.
#define MAXLINE 1000 /* максимальный размер вводимой строки */
int getstr(char line[], int maxline);
void reverse(char mass[]);
int main(void)
{
int len;
char line[MAXLINE];
while((len = getstr(line, MAXLINE)) > 0)
{
reverse(line);
printf("\b%s\n", line);
}
return 0;
}
/* getstr: читает строку в s, возвращает длину */
int getstr(char s[],int lim)
{
int c, i;
for (i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i)
s[i] = c;
if (c == '\n') {
s[i] = c;
++i;
}
s[i] = '\0';
return i;
}
/* reverse: располагает строку в обратном порядке */
void reverse(char mass[])
{
int i, j;
int temp;
for (j = 0; mass[j] != '\0'; ++j) /* Получаем размер массива */
;
for (i = 0; i < j; ++i)
{
temp = mass[i];
mass[i] = mass[j - 1];
mass[j - 1] = temp;
--j;
}
}
$ vim ex_1_19.c#include <stdio.h>
#define MAXLINE 1000 /* максимальный размер вводимой строки */
int getstr(char line[], int maxline);
void reverse(char mass[]);
int main(void)
{
int len;
char line[MAXLINE];
while((len = getstr(line, MAXLINE)) > 0)
{
reverse(line);
printf("\b%s\n", line);
}
return 0;
}
/* getstr: читает строку в s, возвращает длину */
int getstr(char s[],int lim)
{
int c, i;
for (i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i)
s[i] = c;
if (c == '\n') {
s[i] = c;
++i;
}
s[i] = '\0';
return i;
}
/* reverse: располагает строку в обратном порядке */
void reverse(char mass[])
{
int i, j;
int temp;
for (j = 0; mass[j] != '\0'; ++j) /* Получаем размер массива */
;
for (i = 0; i < j; ++i)
{
temp = mass[i];
mass[i] = mass[j - 1];
mass[j - 1] = temp;
--j;
}
}
$ cc -g -O0 -Wall -o a.out ex_1_19.c
$ ./a.out
1
1
12
21
123
321
1234
4321
12345
54321
Hello, world!
!dlrow ,olleH
<Ctrl>+<D>
Комментариев нет:
Отправить комментарий