Поменять местами первое и последнее слово в строке без использования указателей - C (СИ)
Формулировка задачи:
Как я понял нужно использовать пробел как разделитель слов, но как это реализовать я не знаю.
Решение задачи: «Поменять местами первое и последнее слово в строке без использования указателей»
textual
Листинг программы
for ( i = 0, j = 0, k = 0; i < cntword; i++, j++) { while( ptr[j] != ' ' && ptr[j] != ',' && j < count ) { str[i][k] = ptr[j]; k++; j++; } str[i][k] = '\0'; k = 0; while( ptr[j] == ' ' || ptr[j] == ',') { j++; if( !flag ) flag = TRUE; } if( flag ) { j = j - 1; flag = FALSE; } }
Объяснение кода листинга программы
- Переменная
cntword
инициализируется значением количества слов в исходной строке. - Три вложенных цикла начинаются, в которых происходит перебор слов в исходной строке.
- Внутренний цикл (j < count) выполняется до тех пор, пока не будет найдено пространство или запятая.
- Внутренний цикл (k < len) используется для заполнения текущего слова в массиве строк.
- После внутреннего цикла (k < len) устанавливается нулевой символ в конце текущего слова.
- Внешний цикл (i < cntword) начинается после завершения внутреннего цикла (k < len).
- Внешний цикл (i < cntword) выполняется до тех пор, пока не будут выполнены два условия:
- Первое условие: найти пробел или запятую в текущем слове.
- Второе условие: флаг установлен в TRUE.
- Если второе условие выполняется, то переменная
j
уменьшается на 1, чтобы исправить неправильное смещение, вызванное тем, что первое условие было выполнено дважды. - Флаг устанавливается обратно в FALSE.
- После завершения внешнего цикла (i < cntword) выполняется завершающая обработка, которая включает в себя:
- Установку первого символа последнего слова в первое слово.
- Установку последнего символа первого слова в последнее слово.
- Установку первого символа первого слова в последний символ последнего слова.
- Установку последнего символа последнего слова в первый символ первого слова.
- Результат выводится на консоль.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д