Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
CarbonBased
7 / 4 / 4
Регистрация: 27.03.2017
Сообщений: 131
1

Вывод массива символов в обратном порядке

02.05.2017, 18:08. Просмотров 454. Ответов 1
Метки нет (Все метки)

Доброго дня. Не могу понять, почему массив символов не печатается, если не убавлять единицу со счетчика. Насколько я понимаю, в конце строки добавляется символ конца строки. правильно ли я понимаю, что в случае, если символ конца строки переставить на место первого номера элемента массива, то строка не напечатается?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#include <string.h>
#define LIM 30 // лимит символьного массива
 
void reverse(char s[], int b);
 
int main(void)
{
    char word[LIM];
    int i;
    char c;
    int len;
 
    for(i = 0; i < LIM - 1 && (c = getchar()) != '\n' && c != EOF; ++i) // пока символ - не конец строки и не конец файла инкрементируем счетчик 
    {   word[i] = c;
    }
    
    if(c == '\n')
    {   word[i] = c;
        ++i;    
    }
    i-=1;
    len = strlen(word);
    reverse(word, i);
    printf("%d\t%d\n", i, len);
    printf("%s\n", word);
}
 
void reverse(char s[], int len)
{   int i, j = len;
    char tmp;
 
    for(i = 0; j > i; --j)
    {   tmp = s[i];
        s[i] = s[j];
        s[j] = tmp;
        ++i;
        
    }
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2017, 18:08
Ответы с готовыми решениями:

Строка символов (переставить слова в обратном порядке)
Вводится строка состоящая из каких-либо слов,например: My name is qwe. Как поменять слова...

Вернуть строку, n символов которой размещены в обратном порядке
Вот написал прогу с строкой и указателем. Она должна возврощать строку н символов которой...

Вывод списка в обратном порядке
У меня есть такая структура: struct list_r { int a; struct list_r *next; }; вводятся...

Вывод строки в обратном порядке
Вот часть программы, которая должна выводить строки в обратном порядке #include &lt;stdio.h&gt; void...

Вывод строки в обратном порядке
доброй ночи, в общем сразу к делу) задание в том, С консоли вводится строка слов. Необходимо...

1
shvyrevvg
1148 / 646 / 318
Регистрация: 12.05.2016
Сообщений: 1,838
02.05.2017, 18:16 2
Цитата Сообщение от CarbonBased Посмотреть сообщение
если символ конца строки переставить на место первого номера элемента массива, то строка не напечатается?
Правильно понимаете.

Добавлено через 1 минуту
Цитата Сообщение от CarbonBased Посмотреть сообщение
почему массив символов не печатается, если не убавлять единицу со счетчика.
Потому что нумерация элементов массива начинается с 0 и s[len] будет указывать на '\0'.
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2017, 18:16

Создать новую строку из символов исходной, расположенных в обратном порядке
Здравствуйте. У меня возникла проблема, я перевелся из одного университета в другой и в связи с...

Вывод найденных элементов в обратном порядке
такое дело, необходимо было найти 3 минимальных элементы в одномерном массиве А(30), что я и...

Ввести строку символов, переставить все символы в строке в обратном порядке
Помогите дописать программу с условием: Ввести строку символов, переставить все символы в строке в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru