Как распечатать последние буквы слов в С - PullRequest
0 голосов
/ 24 сентября 2019

Застрял в этой точке задачи.Существует блок из 60 символов (символ), и моя задача состоит в том, чтобы я должен был распечатать последние буквы слов в блоке.Я бы посоветовал распечатать письмо до (пробелов).Я имею в виду функцию, проверяющую все буквы, и когда есть пробел, она должна отсчитать один символ и распечатать его.С тех пор я не мог найти подходящую функцию для проверки всех символов.Функция Isalpha может помочь мне?

1 Ответ

0 голосов
/ 24 сентября 2019

Вот, пожалуйста.Я полагаю, что строка содержит только буквы и пробелы.То есть слово представляет собой последовательность символов, ограниченную пробелами.

#include <stdio.h>
#include <string.h>

int main(void) 
{
    const char *s = "How to print out the last letters of the words in C";
    const char * blanks = " \t";

    for ( size_t i = 0; s[i] != '\0'; )
    {
        size_t j = strspn( s + i, blanks );
        i += j;

        j = strcspn( s + i, blanks );

        i += j;

        if ( j != 0 ) printf( "%c ", s[i-1] );
    }

    return 0;
}

Вывод программы:

w o t t e t s f e s n C 

Если вам нужно вывести буквы в верхнем регистре, включите заголовок <ctype.h> и измените оператор вывода как

if ( j != 0 ) printf( "%c ", toupper( ( unsigned char )s[i-1] ) );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...