Напишите программу, которая выводит последнее слово переданной ей символьной строки - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Почему не работает этот код?
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5. char arr[400000];
  6. int i,k;
  7. scanf("%s",&arr);
  8. k=strlen(arr);
  9. for (i=k;i>=k;i--)
  10. {
  11. if (arr[i] != ' ')
  12. printf("%c",arr[i]);
  13. }
  14. return 0;
  15. }

Решение задачи: «Напишите программу, которая выводит последнее слово переданной ей символьной строки»

textual
Листинг программы
  1. #include "conio.h"
  2. #include "stdio.h"
  3. #include "windows.h"
  4.  
  5. int main(){
  6.     SetConsoleCP(1251);
  7.     SetConsoleOutputCP(1251);
  8.     char * str = new char[1000];
  9.     printf("Введите строку:\n");
  10.     fgets(str, 1000, stdin);    
  11.     int n = -1, k;
  12.     for (int i = 0; i < 1000; i++){    
  13.         if (str[i] == ' '){
  14.             n = i;
  15.         }
  16.         if (str[i] == '\0'){
  17.             k = i;
  18.             break;
  19.         }      
  20.     }
  21.     printf("Последнее слово:\n");
  22.     for (int i = n + 1; i < k; i++){
  23.         printf("%c", str[i]);
  24.     }
  25.     delete[] str;
  26.     _getch();
  27.     return 0;
  28. }

Объяснение кода листинга программы

В этом коде:

  1. Строка: Вводится пользователем с помощью функции fgets().
  2. Переменная n: Используется для хранения индекса последнего пробела в строке.
  3. Переменная k: Используется для хранения индекса конца строки (включая символ новой строки).
  4. Цикл for: Проходит по каждому символу строки, начиная с 0 и заканчивая 999.
  5. Если str[i] == ' ': то значение переменной n устанавливается в i.
  6. Если str[i] == '\0': то значение переменной k устанавливается в i, и цикл прерывается.
  7. Цикл for: Проходит по символам от n + 1 до k - 1 (не включая пробелы и символы новой строки).
  8. Выводит: каждый символ с помощью функции printf().
  9. Значение переменной str освобождается с помощью функции delete[].
  10. Функция _getch(): используется для приостановки выполнения программы до тех пор, пока пользователь не нажмет клавишу.
  11. Возвращает 0: чтобы указать, что программа успешно завершилась.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы