#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; // и выходим из программы }
Должно работать и для С++, и для чистого С...
Сообщение отредактировано: volvo - 4.11.2008 23:18