Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // требуется #include <string.h>
- ///////////////////////////////////////////////////////////////////////////////////
- int selectWords(const char *str, int min, int max, char words[30][21]) //
- {
- int F1 = 0, // Флаг F1 = 1 если встретили допустимый символ ( Type = 1, 2 или 3 )
- Type = 0, // Тип символа: 1, 2, 3 допустимы для слов. 0 = недопустимый символ
- n = 0, // Счётчик найденных слов
- c = 0, // Кол-во символов в найденном слове
- i = 0; // Счётчик символов в главной строке str (источнике)
- for( i = 0; str[i] != 0; i++)
- {
- Type = 0;
- if(str[i] >= '0' && str[i] <= '9') Type = 1; // Это число (цифра)
- if(str[i] >= 'A' && str[i] <= 'Z') Type = 2; // Это заглавная буква (A, B, C, D....)
- if(str[i] >= 'a' && str[i] <= 'z') Type = 3; // Это маленькая буква (a, b, c, d....)
- if(str[i] == '!' || str[i] =='\'') Type = 4; // Это разделители
- if(str[i] == '"' || str[i] == ';') Type = 4; // Это разделители
- if(str[i] == '?' || str[i] == '-') Type = 4; // Это разделители
- if(str[i] == '.' || str[i] == ',') Type = 4; // Это разделители
- if(str[i] == ' ' || str[i] == ':') Type = 4; // Это разделители
- if(F1 == 0 && Type > 0 && Type < 4) { F1 = 1; c = 1; continue; } // Найден первый символ
- if(F1 == 1 && Type > 0 && Type < 4) c ++ ;
- if(F1 == 1 &&(Type== 4 || Type ==0))
- {
- F1 = 0;
- if(c >= min && c <= max) // если слово недопустимой длины, то исключаем его
- {
- strncpy(words[n], &str[i-c], c);
- words[n][c] = 0; // признак завершения слова (терминальный ноль)
- n ++; // Увеличим счётчик. (найдено ещё одно слово)
- }
- c = 0; // обнулим счётчик символов
- }
- }
- if(F1 == 1)
- {
- if(c >= min && c <= max) // если слово недопустимой длины, то исключаем его
- {
- strncpy(words[n], &str[i-c], c);
- words[n][c] = 0; // признак завершения слова (терминальный ноль)
- n ++; // Увеличим счётчик. (найдено ещё одно слово)
- }
- }
- return n; // Возвращаем кол-во найденных слов
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement