Форум программистов, компьютерный форум, киберфорум
Наши страницы

Поиск повторяющихся слов в тексте (доработка кода) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Объясните, как работает программа http://www.cyberforum.ru/cpp-beginners/thread415819.html
программа по трем введеным числам определяет и выводит на экран число имеющее в составе наибольше едениц. Пожалуйста, объясните подробно какие действия происходят в цикле, в книге написано, что...
C++ Найти максимальный элемент массива В массиве x найти максимальный элемент http://www.cyberforum.ru/cpp-beginners/thread415803.html
Реализовать функцию копирования элементов первого массива во второй в обратном порядке. C++
1. Создать проект, который содержит консольную программу Win32. 2. Создать два массива на N элементов, размер первого определить неявно (путем инициализации определенным количеством элементов)....
C++ исправьте программу, добавив функцию
Написал программу, работает. Но нужно переделать с функцией, не могу осилить. #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<iomanip> #include<iostream> #include<math.h>...
C++ создание класса http://www.cyberforum.ru/cpp-beginners/thread415787.html
Создать класс для работы с матрицей. Данные класса: матрица A(3×3). Открытые функции класса: транспонирование матрицы. Перегрузить операции «>>», «<<» для ввода и вывода матрицы. Перегрузить...
C++ Даны две строки, содержащие не более 100 символо 6. Даны две строки, содержащие не более 100 символов. Строки состоят из слов, разделенных пробелами. Распечатать строку, которая содержит заданное слово заданное количество раз. Вот код моей... подробнее

Показать сообщение отдельно
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
24.12.2011, 06:32
вариант без дополнительных буферов или массивов.
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
#include <iostream>
#include <cctype>
using namespace std;
 
char* swords(char* s, char** i) {
   if(! *s)
       *s++;
   for(; *s && ! isalpha(*s); *s++);
   if(! *s)
        return NULL;
   for(*i = s; *s && isalpha(*s); *s++);
   return s;
}
 
char* snext(char* a, char* b) {
   char* p = a;
   for(; *a; *a++ = *b++);
   return --p;
}
 
int main(void)
{
   char s[] = "red, ops-yellow, white; ops red:OK, <red>OK</red>, yellow. ops 'OK'";
   char* a0, *a1, *b0, *b1;
 
   int n = 1;
   for(b0 = s; (b0 = swords(b0, &a0)); ) {
           for(b1 = b0; (b1 = swords(b1, &a1)); ) {
                if(! strncmp(a0, a1, b1 - a1)) { //strnicmp(a0, a1, b1 - a1) можно без учёта регистра
                     ++n;
                     b1 = snext(a1, b1);
                }
           }
           cout << n << ").";
           cout.write(a0, b0 - a0);
           cout << endl;
           n = 1;
   }
   return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru