Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
xAtom
918 / 743 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
29.11.2011, 03:48 0

Вывести на экран слова текста в порядке, соответствующем латинскому алфавиту

29.11.2011, 03:48. Просмотров 2789. Ответов 2
Метки (Все метки)

Ответ

TheWitcher, вот вариант.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
/* здесь всё просто ищем начинающее слова на символ в алфавитном порядке
    если находим копируем слово в выходной буфер с удалением её из строки */
char*  get_word_asc(char* dst, char* src, int* pos) {
   int  id, cnt;
   char* ptr, *tmp, *str;
   char  chs[3] = {'\0'};
prev:
   tmp = str = src;
   chs[0] = *pos + 'A';
   chs[1] = *pos + 'a';
 
   while(1) {
         if((str = strpbrk(str, chs)) == NULL) { 
              if( ++(*pos) < 26 )  
                   goto prev;   
              else
                   break;
         } 
         id = 1;
         if((str - tmp) > 0) 
               id = ! isalpha(*(str - 1));
         for(ptr = str + 1; isalpha(*ptr) && *ptr; *ptr++);
 
         if(id && ! isalpha( *ptr )) {
              cnt = ptr - str;
              strncpy(dst, str, cnt);
              strcpy(str, str + cnt);
             *((dst) + cnt) = '\0';
             break;
         } else
             str = ptr;
   } 
   return (str) ? tmp : NULL;
}
 
int main(void) {
  char* ptr, buf[32];
  int i = 0;
  // этот текст для примера
  char  str[] = "Calling User Functions. (#ZEX) You can call user functions from your own "\
               "modules, which is very handy when implementing callbacks; for example"\
               ", for array walking, searching, or simply for event-based programs";
 
  for(ptr = str; (ptr = get_word_asc(buf, ptr, &i)) != NULL;) 
      puts(buf);
 
  getchar();
  return 0;
}


Вернуться к обсуждению:
Вывести на экран слова текста в порядке, соответствующем латинскому алфавиту
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2011, 03:48

Дан текст, вывести на экран слова в порядке уменьшения их длины!
Дан одномерный Массив написать программу преобразования массива путём сдвига их...

Дана строка, Вывести на экран эти слова в порядке алфавита
Дана строка, состоящая из слов на английском языке, разделенных пробелами....

Определить, какие слова из текста имеют длину от 1 до 10, и вывести их в порядке возрастания длины
Определить сколько слов текста имеют длину 1, 2, 3, ... 10 символов. Вывести...

0
Другие темы раздела
C++ Транзакции http://www.cyberforum.ru/cpp-beginners/thread394472.html
Нигде толком не нашел информации, решил у вас спросить. Вот допустим есть какой-то класс с набором всяческих данных и методов. Этот класс в программе, в которую следует запихнуть транзакцию. Честно...
C++ зар. плата работника составить алгоритм и программу определения разницы между наибольшей и наименьшей зарплатой N работников, если заработная плата каждого работника рассчитывается по формуле Z = T * G, где Z-сумма... http://www.cyberforum.ru/cpp-beginners/thread394468.html
C++ Перегрузка бинарных операций
помогите пожалуйста доработать программу цель которой ввод массива, вывод, нахождение длины вектора массива.. и сложения и вычитания из каждого элемента массива дробного числа с помощью перегруженных...
C++ упорядочить по возрастанию
a=(2L-4K)/81; b=(l+8k)/k; c=2lk-12;
C++ Составить процедуру вычисления значения целого числа по заданной строке символов http://www.cyberforum.ru/cpp-beginners/thread394451.html
Составить процедуру вычисления значения целого числа по заданной строке символов, являющейся записью этого числа в шестнадцитеричной форме счисления.
C++ задача на использование условных операторов Добрый вечер. Возникили трудности с решением задачи с использованием условных операторов. Не могу разобраться , слишком много переменных и не получается собрать это все вместе Вот текст задачи:... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru