Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
TheWitcher
1 / 1 / 0
Регистрация: 30.09.2010
Сообщений: 23
29.11.2011, 02:11     Вывести на экран слова текста в порядке, соответствующем латинскому алфавиту #1
Дана строка символов, состоящая из произвольного текста на английском языке, слова разделены пробелами. Вывести на экран слова этого текста в порядке, соответствующем латинскому алфавиту.

Как вывести в латинском алфавите не знаю, помогите пожалуйста желательно с объяснением.


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
#include <stdio.h>
#include <string.h>
int main()
{
char st[100], sl[100];
int k=0, i;
 gets(st);
 strcat(st," ");
  int n=strlen(st);
       
        if (n<2) return 1;
    
   sl[0]='\0';
   for (i=0; i<n; i++)
       if (st[i] != ' ') 
       {
           sl[k]=st[i];
           sl[k+1]='\0';
           k++;
       }
       else
       {
           puts(sl);
           sl[0]='\0'; 
           k=0;    
       }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2011, 02:11     Вывести на экран слова текста в порядке, соответствующем латинскому алфавиту
Посмотрите здесь:

Вывести слова, в которых нет повторяющихся букв и буквы слова упорядочены по алфавиту C++
Дан текст, вывести на экран слова в порядке уменьшения их длины! C++
C++ Вывести слова в порядке, соответствующем латинскому алфавиту
C++ Дана строка символов, состоящая из произвольного текста, слова раз-делены пробелами. Вывести на экран порядковый номер слова, накрывающего k позицию
C++ Дана строка, Вывести на экран эти слова в порядке алфавита
Вывести слова текста в алфавитном порядке и посчитать их количество C++
Считать текст из двух файлов и вывести на экран отсортированные слова в алфавитном порядке C++
C++ Вывести те слова из текста на экран, которые отсортированы по количеству гласных букв

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
29.11.2011, 03:48     Вывести на экран слова текста в порядке, соответствующем латинскому алфавиту #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;
}
TheWitcher
1 / 1 / 0
Регистрация: 30.09.2010
Сообщений: 23
29.11.2011, 16:35  [ТС]     Вывести на экран слова текста в порядке, соответствующем латинскому алфавиту #3
Спасибо большое, подскажите только, что означает prev: ?
Yandex
Объявления
29.11.2011, 16:35     Вывести на экран слова текста в порядке, соответствующем латинскому алфавиту
Ответ Создать тему
Опции темы

Текущее время: 04:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru