Код
В пpоизвольном тексте найти и отпечатать все слова, заканчивающиеся буквой r.
if w[Length(w)]='r' then WriteLn(w)
#include <conio.h> // для getch()Должно работать и для С++, и для чистого С...
#include <stdio.h>
#include <string.h>
int main() {
char s[] = "this is the test for acid_burn: star, force";
// это - разделители: слова в строке могут разделяться пробелами, двоеточиями,
// точками и запятыми... Можешь добавить еще чего-нибудь, если нужно...
char *delimiters = " :,.";
char *result = NULL; // это - простой указатель на строку, инициализированный NULL-ом
// получаем первое слово строки с помощью библиотечной функции strtok:
// первый параметр = строке, которую разбиваем на слова
result = strtok(s, delimiters);
// следующий цикл будет выполняться до тех, пор, пока в строке еще остались слова,
// то есть, пока result не равен NULL (как только он будет NULL - выходим из цикла)
while(result) {
// здесь в result хранится указатель на очередное слово,
// проверяем последний символ этого слова (не забываем ,что в С символы в строке
// индексируются с 0), и если он == 'r' выводим слово на печать
if(result[strlen(result) - 1] == 'r') printf("%s ", result);
// попытка получить следующее слово в заданной строке.
// Особенность функции strtok - в том, что ей после того, как первое слово уже найдено
// не надо указывать саму строку, нужно первым параметром передавать NULL, тогда
// эта функция будет работать с той же строкой, что и при первом вызове...
result = strtok(NULL, delimiters);
}
// Добавляем ожидание нажатия на кнопку...
getch();
return 0; // и выходим из программы
}
...
char *delimiters = " :,.";
char *result = strtok(s, delimiters); // сразу искать первое слово в S
...