Ошибки при обращении строки (предложения) в C с помощью цикла for (присвоения ее другой строке)

https://github.com/ashwinidotx/Daily-Coding-Problmes/blob/master/Operations%20with%20names.c

Посмотрите мой код, я могу напечатать предложение, но компилятор не выполняет обратный цикл; Вот фрагмент кода, который я использую, чтобы перевернуть строку.

for (i=0;i<size;i++)
    reverse[i]=name[size-i-1];

printf("\nReverse: ");
for(i=0;i!='\0';i++)
    printf("%c",reverse[i]);

Компилятор ничего не выполняет, это просто компилирует вашей программы. Кстати, прочтите это: Как спросить и это: минимальный воспроизводимый пример

Jabberwocky 07.09.2018 09:49

Вам предлагается создать минимальный воспроизводимый пример и опубликовать его, а не ссылку на внешний код. «но компилятор не выполняется» нет, здесь не происходит этого. Используйте ваш отладчик, чтобы отслеживать выполнение вашей программы построчно. Наблюдайте, как переменные меняются во время выполнения. Также возьмите книгу C и выполняйте упражнения.

n. 1.8e9-where's-my-share m. 07.09.2018 09:56
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
30
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы проверяете i!='\0', он должен быть reverse[i]!='\0'

printf("\nReverse: ");
for(i=0;reverse[i]!='\0';i++)
    printf("%c",reverse[i]);
Ответ принят как подходящий

Вы забыли завершить массив charreverse нулевым ограничителем после первого цикла for. Итак, добавьте следующий после первой петли for. В противном случае вы в конечном итоге будете печатать ненужные символы на своем выходе, поскольку вы будете читать сверх того, что разрешено.

reverse[i] = '\0';

Вы должны сравнить символ в массиве reverse с нулевым ограничителем. Вместо этого вы сравниваете с ним i. Итак, измените второй цикл for следующим образом:

for(i=0; reverse[i]!='\0'; i++)
    printf("%c",reverse[i]);

хорошо, поэтому я изменил свой код на этот, и теперь он выводит значение мусора для (i = 0; i <size; i ++) reverse [i] = name [size-i-1]; printf ("\ nРеверс:"); for (i = 0; i <size; i ++) {printf ("% c", reverse [i]);}

Ashwini 07.09.2018 09:57

Я тестировал это на своем ПК. Работает нормально. Вы сделали то и другое, что я предложил?

P.W 07.09.2018 09:58

Код, который вы вставили в комментарий, не содержит предложенных мной изменений.

P.W 07.09.2018 10:00

да, я скопировал не тот код. Я отредактировал это потом

Ashwini 07.09.2018 10:01

Другие вопросы по теме