0 / 0 / 0
Регистрация: 17.05.2011
Сообщений: 3
1

Поиск буквы в указанном слове строки

17.05.2011, 14:49. Показов 2786. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
написал так, что ищет букву по всей строке, а нужно сделать чтобы искало только в последнем слове... например буква а:
Prolog
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
predicates
 
  win_window_eh : EHANDLER
  char_count(string,char,integer)
  
    разделить(string,integer) 
nondeterm разделитель(string)
 
 
 
constants
%BEGIN window, CreateParms, 13:02:48-3.5.2011, Code automatically updated!
  win_window_WinType = w_TopLevel
  win_window_Flags = [wsf_SizeBorder,wsf_TitleBar,wsf_Maximize,wsf_Minimize,wsf_Close,wsf_ClipSiblings,wsf_ClipChildren]
  win_window_RCT = rct(100,80,440,240)
  win_window_Menu = no_menu
  win_window_Title = "window"
  win_window_Help = idh_contents
%END window, CreateParms
 
predicates
 
  win_window_eh : EHANDLER
  char_count(string,char,integer)
  
    разделить(string,integer) 
nondeterm разделитель(string)
 
 
 
clauses
 
char_count("",_,0):-!. /* Любой символ не встречается
в пустой строке ни разу*/
char_count(S,C,N):-
frontchar(S,C,S1),!,
/* символ C оказался первым символом
строки S, в S1 - оставшиеся
символы строки S */
char_count(S1,C,N1),
/* N1 - количество вхождений
символа C в строку S1 */
N=N1+1.
/* N - количество вхождений
символа C в строку S получается
из количества вхождений символа C
в строку S1 добавлением единицы */
char_count(S,C,N):-
frontchar(S,_,S1),
/* первым символом строки S
оказался символ, отличный
от исходного символа C, в S1 -
оставшиеся символы строки S */
char_count(S1,C,N).
/* в этом случае количество
вхождений символа C в строку S
совпадает с количеством
вхождений символа C
в строку S1 */
 
 
 
 
  win_window_Create(_Parent):-
    win_Create(win_window_WinType,win_window_RCT,win_window_Title,
           win_window_Menu,_Parent,win_window_Flags,win_window_eh,0).
 
%BEGIN window, e_Create
  win_window_eh(_Win,e_Create(_),0):-!,
%BEGIN window, InitControls, 13:02:48-3.5.2011, Code automatically updated!
    win_CreateControl(wc_Edit,rct(93,14,321,39),"",_Win,[wsf_Group,wsf_TabStop,wsf_AutoHScroll,wsf_AlignLeft],idc_edit),
    win_CreateControl(wc_LBoxEdit,rct(94,62,192,156),"",_Win,[wsf_Group,wsf_TabStop,wsf_VScroll,wsf_Sort],idc_listedit),
    win_CreateControl(wc_Edit,rct(219,101,315,125),"",_Win,[wsf_AlignLeft,wsf_Group,wsf_TabStop,wsf_AutoHScroll,wsf_Disabled],idc_edit1),
    win_CreateControl(wc_Text,rct(6,19,70,39),"Фраза",_Win,[wsf_AlignLeft],idct_static_text),
    win_CreateControl(wc_Text,rct(9,65,53,90),"Поиск",_Win,[wsf_AlignLeft],idct_поиск),
    win_CreateControl(wc_Text,rct(217,60,313,80),"Результат",_Win,[wsf_AlignLeft],idct_результат),
    C1=win_getCtlHandle(_Win,idc_listedit),
LIST=[а],
lbox_add(C1,LIST),
%END window, InitControls
%BEGIN window, ToolbarCreate, 13:02:48-3.5.2011, Code automatically updated!
%END window, ToolbarCreate
    !.
%END window, e_Create
%MARK window, new events
 
%BEGIN window, e_CloseRequest
  win_window_eh(_Win,e_CloseRequest,0):-!,
  
    !.
%END window, e_CloseRequest
 
%BEGIN window, idc_listedit selchanged
win_window_eh(_Win,e_Control(idc_listedit,_CtrlType,_CtrlWin,selchanged),0):-!,
 
C_edit=win_getCtlHandle(_Win,idc_edit),
T=win_gettext(C_edit),
C_list=win_getCtlHandle(_Win,idc_listedit),
I=lbox_GetSelIndex(C_list),
S=lbox_GetItem(C_list,I),
str_char(S,R),
char_count(T,R,Y),
C_edit1=win_getCtlHandle(_Win,idc_edit1),
str_int(K,Y),
win_settext(C_edit1,K),
    !.
%END window, idc_listedit selchanged
 
%BEGIN window, idc_window_1 selchanged
  win_window_eh(_Win,e_Control(idc_listedit,_CtrlType,_CtrlWin,selchanged),0):-!,
  
    !.
%END window, idc_window_1 selchanged
 
%BEGIN window, e_Size
  win_window_eh(_Win,e_Size(_Width,_Height),0):-!,
ifdef use_tbar
    toolbar_Resize(_Win),
enddef
    !.
%END window, e_Size
 
%BEGIN window, e_Menu, Parent window 
  win_window_eh(Win,e_Menu(ID,CAS),0):-!,
    PARENT = win_GetParent(Win),
    win_SendEvent(PARENT,e_Menu(ID,CAS)),
    !.
%END window, e_Menu, Parent window
 
%END_WIN window
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.05.2011, 14:49
Ответы с готовыми решениями:

Заменить первые буквы в каждом слове строки на заглавные буквы
Задача: Заменить первые буквы в каждом слове строки на заглавные буквы. P.S. При помощи Edit ,...

Строки. В каждом чётном по порядку слове удалить все нечётные буквы, а в каждом нечётном слове удалить все чётные буквы.
8.4.1. Помогите, пожалуйста, решить задачу в С++. Дана строка символов, состоящая из русских...

Строки. В каждом четном по порядку слове удалить все нечетные буквы, а в каждом нечетном слове удалить все четные буквы
Дана строка символов, состоящая из русских слов, разделенных пробелами. В каждом четном по порядку...

Сделать маленькими все буквы в тех словах, в которых нет ни одной буквы, встречающейся в последнем слове строки.
Помогите разобраться с задачей по практике, что только не пробовал, программа упорно отказывается...

4
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
18.05.2011, 00:15 2
С помошью fronttoken можно легко найти последнее слово.
0
Заблокирован
18.05.2011, 07:40 3
или, если текст на русском языке и надо решить на турбо пролог - то можно взять предикат gtwrd для выделения слова отсюда: Обработка строк в Турбо Пролог
им не менее легко найти последнее слово
0
0 / 0 / 0
Регистрация: 17.05.2011
Сообщений: 3
18.05.2011, 16:24  [ТС] 4
не могли бы написать текст? очень нужно...
0
Заблокирован
18.05.2011, 16:37 5
Lodir, код готовый никто писать не будет, если вы сами не приложите чуть-чуть усилий.
по ссылке что я привел выше есть предикат gtwrd, с помощью него очень легко ищете последнее слово строки. Затем, вашу букву(которую будете искать) при помощи предиката str_char приводите к типу string(это делается одной строчкой). Ну и наконец, вызываете substr(string,string,integer), приведенный по ссылке(параметры для вызова описаны там же) который ищет вашу букву.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.05.2011, 16:37
Помогаю со студенческими работами здесь

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

Поиск буквы в слове
Здравствуйте, помогите закончить программу: Напишите программу для проверки, есть ли в данном...

Поиск буквы в слове
Господа, добрый день. Провожу вот тренировки по передаче указателей на строку в функцию. Пытаюсь...

Поиск буквы в слове
Дана строка S=” Списки в Python. Создание списка ”. Написать код на Python для создания списка...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru