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

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

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

Всем привет!Как определить порядковый номер слова в строке?выбираю какой-нибудь слово-он выводил его порядковый номер(1,2,3....)Если можно без strtok,спасибо!

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

textual
Листинг программы
#include <stdio.h>
#include <glib.h>
 
#define DELIM " \t\n"
typedef char string_t[256];
#define get_string(s) ( scanf("%255[^\n]%*c", (s)) == 1 )
#define get_word(w) ( scanf("%255s%*c", (w)) == 1 )
 
int main(void) {
    string_t str, wrd;
    
    while ( printf("String: ") && get_string(str) && printf("Word: ") && get_word(wrd) ) {
        char ** words = g_strsplit_set(str, DELIM, -1), ** pWord;
        int wordNumber = 0;
        
        for ( pWord = words; *pWord; ++pWord ) {
            if ( ! **pWord )
                continue;
            ++wordNumber;
            if ( g_str_equal(*pWord, wrd) )
                break;
        }
        
        if ( *pWord )
            printf("#%d\n", wordNumber);
        else
            printf("Not found.\n");
        
        g_strfreev(words);
    }
    
    return 0;
}

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

В этом коде определен тип данных string_t как массив символов фиксированного размера (256 символов). Затем определены две функции get_string и get_word, которые считывают строку и слово из стандартного ввода соответственно. В основном цикле программы, пока пользователь вводит строки и слова, код разбивает строку на слова с помощью g_strsplit_set, а затем ищет каждое слово в строке. Если слово найдено, функция printf выводит порядковый номер слова в строке. Если слово не найдено, выводится сообщение Not found. Переменные str и wrd используются для хранения текущей строки и текущего слова соответственно. В конце программы вызывается функция g_strfreev для освобождения памяти, выделенной для слов в строке. В этом коде нет использования переменных h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z.

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


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

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

8   голосов , оценка 4.125 из 5
Похожие ответы