Помощь - Поиск - Пользователи - Календарь
Полная версия: вывод слов в диапазоне от N до M
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Jerry
помогите написать условие на вывод кол-ва слов длина которых от 5<L<8 (L - длина слова).
если все слова подсчитываются :
Код

...
int c;                 // Код введенного символа
int numWords = 0;   // Суммарное число слов := 0
...      
// Подсчитываем число слов
        if (!isspace(c)) {      // если с не пробел
            if (!readingWord) {       //  если не читаем слово
                ++numWords;          //  увеличить число слов
                readingWord = true; // Читаем слово:=true
            }                             // конец если
        } else {                             // иначе
            readingWord = false;  //  Читаем слово:=false
        }                                      // конец если
    }

klem4
int GetCount(char *s)
{
// чтобы не изменять исходную строку

char temp[255];

strncpy(temp, s, strlen(s));
temp[strlen(s)] = '\0';

char *p = temp;

int count = 0;

while (*p)
{
while ((*p) && (!(isalnum(*p)))) p++;

if (*p)
{
int i = 0;

while ((*p) && (isalnum(*p))) { p++; i++; }

count = ((i >= 5) && (i <= 8)) ? ++count : count;
}
}

return count;
}
Jerry
это если мы вводим строку. а если исходные текст записан в файл?

Код
int main() {
    char fileName[256];
    FILE *f;    
    int Words=0;
    printf("BBeguTe uMR qpauJIa: ");
    scanf("%s", fileName);
    f = fopen(fileName, "rb");
    if (f == 0) {
        perror("Cann't open File! T_T");
        return 1;
    }
...
/*
    strncpy(temp, s, strlen(s));
temp[strlen(s)] = '\0';

char *p = temp;

while (*p)
{
while ((*p) && (!(isalnum(*p)))) p++;

if (*p)
{
int i = 0;

while ((*p) && (isalnum(*p))) { p++; i++; }

Words = ((i >= 5) && (i <= 8)) ? ++Words : Words;
}
}

return count;
} */

    fclose(f);
    printf("4ucJIo cJIoB = %d\n", Words);
    return 0;
}


Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.