Важная информация
Показано с 1 по 3 из 3

Тема: Написать программу определения в строке номера позиции слова с заданным номером - C (СИ)

  1. #1 Написать программу определения в строке номера позиции слова с заданным номером - C (СИ) 
    Новичок
    Регистрация
    01.11.2017
    Сообщений
    1
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    помогите пожалуйста
    Ответить с цитированием  
     

  2. #2  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,846
    Сказал(а) спасибо
    1,815
    Поблагодарили 945 раз(а) в 807 сообщениях
    Записей в блоге
    1
    Вы пытались сами написать программу? Что конкретно вам не понятно?
    Эта программа на понимание работы строковых конструкций.
    Вводится номер с клавиатуры, вам требуется найти это слово по его порядковому номеру
    в предложении и вернуть индексную позицию(т.е. порядковый номер первой буквы слова
    в строке). Слова отделяются разделителем - пробелом.

    Программа на FreeBasic(писал так, чтобы легко можно было перевести на си, у меня его сейчас нету под рукой).

    FreeBasic Code:
    1. DIM i AS INTEGER       '   Переменная цикла
    2. DIM P AS STRING        '   Строка с предложением
    3. DIM N AS INTEGER       '   Номер искомого слова
    4. DIM S AS INTEGER       '   Номер слова
    5. DIM L AS INTEGER       '   Длина строки
    6. DIM F AS INTEGER       '   Флаг (тек. состояние)
    7.  
    8. P = "Slovo1 slovo2 slovo3 slovo4 slovo5"
    9. L = LEN(P)
    10. N = 3     '   Номер искомого слова
    11. S = 1     '   Номер текущего слова
    12.  
    13. '   Проход по всем буквам строки в цикле
    14. FOR i = 1 TO L
    15.  
    16.     '   Если буква под номером i является разделителем, то
    17.     IF MID(P, i, 1) = " " THEN
    18.          F = -1         '   Взведём флаг
    19.  
    20.     '   Если буква НЕ является разделителем и флаг взведён, то
    21.     ELSEIF F AND (MID(P, i, 1) <> " ") THEN
    22.          S += 1      '   Инкремент номера слова(для сравнения)
    23.          F = 0       '   И очистим флаг,
    24.     END IF
    25.  
    26.     IF S = N THEN      '  Если текущий номер слова равен искомому, то
    27.        PRINT "Otvet ="; i  '   Нашли ответ, выводим результат
    28.        SLEEP      '    Ждём клавиши
    29.        END        '    Выход из программы
    30.     END IF
    31. NEXT
    32.  
    33. PRINT "Not found!"    '   Ответ не найден
    34. SLEEP
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  3. Пользователь сказал cпасибо:

    Free Admin (02.11.2017)

  4. #3  
    Профи Аватар для rrrFer
    Регистрация
    01.08.2013
    Сообщений
    561
    Сказал(а) спасибо
    34
    Поблагодарили 248 раз(а) в 164 сообщениях
    C Code:
    1. int main() {
    2.   char *str;
    3.   int pos = 0;
    4.   int count_word;
    5.   // ввод count_word
    6.  
    7.   while (count_word && str[pos]) {
    8.     while(str[pos] && str[pos] != ' ')
    9.       ++pos;
    10.     while(str[pos] && str[pos] == ' ')
    11.       ++pos;
    12.     --count_word;
    13.   }
    14.   if (str[pos]) {
    15.     // вывод pos
    16.   }
    17.   else {
    18.     // нет слова с таким номером
    19.   }
    20. }


    схематично. Могут быть опечатки.
    [Ссылки могут видеть только зарегистрированные пользователи. ] // программирование на Prolog, Erlang, C++
    Ответить с цитированием  
     

  5. 2 пользователя(ей) сказали cпасибо:

    >Quiet Snow< (06.11.2017), Free Admin (07.11.2017)

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 12.04.2017, 01:08
  2. Ответов: 0
    Последнее сообщение: 24.09.2015, 12:26
  3. Ответов: 1
    Последнее сообщение: 03.06.2011, 04:15
  4. Ответов: 3
    Последнее сообщение: 22.04.2011, 00:15
  5. Ответов: 3
    Последнее сообщение: 09.01.2011, 01:25
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •