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

Выделение слов из массива строк - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ кэш процессора http://www.cyberforum.ru/cpp-beginners/thread76865.html
Народ, помогите пожалуйста с такой вещью. Нужно получить информацию о кэше процессора. Были тщетные попытки использовать GetLogicalProcessorInformation функцию. Как раз о кэше она ничего и не вывела. Спасите-помогите :)
C++ Матрица С++ Кто-нибудь может подскажит как внести данные матрицы, знаю как составить программу в буквенном выражении, но внести данные (т.е. числа) для решения матрицы, чтобы итог выводился на экран не знаю http://www.cyberforum.ru/cpp-beginners/thread76856.html
C++ SetupDi
Только пробую Setup API, но тут же столкнулся с проблемой... при вызове даже SetupDiCreateDeviceInfoList(NULL, NULL); ловлю ошибку error LNK2019: unresolved external symbol __imp__SetupDiGetClassDevsExW@28 referenced in function "void * __cdecl DoDeviceEnum(struct _GUID)" (?DoDeviceEnum@@YAPAXU_GUID@@@Z) Создаю проект как Win32 Console, т.к. инфу никакой по SetupDi нет кроме как на мсдн - не...
C++ Win32 API ввод текста в окно.
помогите нсатроить правильгное стирание символа пожалуйста. каретка текст затирает не равномерно при нажатии . Слишком малое пространство закрашивается, хотя сама каретка переходит на правлеьное расстояние (ширина символа перед кореткой). Надо закрасить предыдущую букву, удалить её из массива считанных чисел, и поставить каретку до этого предыдущего символа. плохо стирает. LONG APIENTRY...
C++ Как изменить цвет вывода в С++? http://www.cyberforum.ru/cpp-beginners/thread76701.html
Как изменить цвет вывода в С++?
C++ Возведение в стрепень, рекурсивная функция. Задание: написать рекурсивную функцию, которая возводит число в степень путем многократного умножения числа самого на себя. (Сам знаю, что можно сделать гораздо проще и оптимальнее, но надо именно через рекурсию). :( P. S. На этот раз программа действительно не работает. :) #include <iostream> using namespace std; int stepenj(int num, int degr) подробнее

Показать сообщение отдельно
OVERPOWER8
 Аватар для OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
20.12.2009, 18:22  [ТС]     Выделение слов из массива строк
>> outoftime
Спасибо, конечно, но в слове должна быть хотя бы одна буква(алфавитный символ).

Добавлено через 12 минут
Вот, как надо:

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <iostream>
#include <ctype.h>
#include <string.h>
 
using namespace std;
 
bool GetWord(char* string, char* word, int& worfOffset);
 
int main()
{
        const int bufferSize = 256;
    char buffer[bufferSize+1] = {0};      // Переменная для хранения всей строки
    char word[bufferSize+1] = {0};        // для хранения слова
        int wordOffset = 0;                     // начинаем с первого символа
        
        cout << "Enter a string\n-> ";
        cin.getline(buffer, bufferSize);
        
        while (GetWord(buffer, word, wordOffset) )
                cout << "Got to this word: " << word << endl;
        
        return 0;
}
 
// Функция для выделения слова из строки символов:
 
bool GetWord(char* string, char* word, int& wordOffset)
{
        if(!string[wordOffset])         // Определяет ли конец?
        return false;
        
        char *p1, *p2;
        p1 = p2 = string+wordOffset;    // указатель на слудующее слово
        
        // удаляем пробелы
        for(int i=0; i<(int)strlen(p1) && !isalnum(p1[0]); i++)
                p1++;
        
        // Проверка наличия слова
        if(!isalnum(p1[0]))
        return false;
        
        // Указатель p1 показывает начало следующего слова
        // так же как и p2
 
        p2=p1;
 
        // перемещаем p2 в конец слова
        while(isalnum(p2[0]))
                p2++;
 
        // p2 указывает на конец слова
        // а p1 - в начало
        // разность указателей показывает длину слова
        int len = int (p2-p1);
        
        // копируем слово в буфер:
        strncpy(word, p1, len);
        
        // и добавляем символ разрыва строки:
        word[len] = '\0';
        
        // Ищем начало следующего слова
        for(int i=int(p2-string); i<(int)strlen(string) && !isalnum(p2[0]); i++)
                p2++;
                
        wordOffset = int(p2-string);
 
        return true;
}
 
Текущее время: 21:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru