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

Строки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Про раскраску граней у кубика. http://www.cyberforum.ru/cpp-beginners/thread62512.html
Доброго времени суток! Я не еще мало чего смыслю в программировании,не могли бы вы помочь мне с одной задачей. В принципе примерно представляю как ее написать,но когда берусь за нее,ничего не выходит. вот текст задачи: Кубик Рубика имеет 6 граней,каждая из них окрашена в определенный цвет и состоит из 9 квадратиков(по 3 в ряд).Для определенности положим,что передняя грань изначально имеет...
C++ Удаление слов из строки в С Здравствуйте!!! Помогите справиться с задачей, хоть она уже встречалась, но мне необходимо еще доделать, а как, я не понимаю. Задание: Дана строка, содержащая последовательность слов, разделенных пробелами. Удалить из строки все слова, в которых есть заданная буква. Вот похожая тема: http://www.cyberforum.ru/cpp-beginners/thread52951.html. Здесь всё работает правильно, но необходимо, чтоб из... http://www.cyberforum.ru/cpp-beginners/thread62511.html
Представление числа в разном формате C++
как можно представить числа, например 2, в формате 2.0 или 2.00, нужна для предсталения числа в виде таблицы
C++ Функции. Язык C.
Найти минимум функции х (в квадрате) - sinх методом золотого сечения! f(x)= x^2-sin(x)
C++ Выкинуть нули http://www.cyberforum.ru/cpp-beginners/thread62486.html
#include<iostream.h> #include<conio.h> #include<stdlib.h> void main() { int n,k,x,i; cout<<"Koli4estvo elementov v masive: "; cin>>n; for (k=0; k<n; k++) {x=-10+random(21); cout<<x<<" \t";} for (k=0; k<n; k++)
C++ Шаблон класса для блочной сортировки Есть задание реализовать шаблон класса, содержащий разные методы сортировок. Тип сортируемых элементов передаётся как параметр. В общем-то, всё получается, кроме блочной сортровки (http://ru.wikipedia.org/wiki/Блочная_сортировка). Насколько я понял, для неё вообще не получится реализовать шаблон по причине того, что "Данный алгоритм требует знаний о природе сортируемых данных, выходящих за рамки... подробнее

Показать сообщение отдельно
rangerx
1918 / 1527 / 139
Регистрация: 31.05.2009
Сообщений: 2,886
10.11.2009, 02:38     Строки
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
#include <iostream>
#include <sstream>
#include <cctype>
#include <algorithm>
#include <string>
 
//--------------------------------------------
bool is_all_digit(const std::string& s)
{
    size_t len = s.length();
    for(size_t i = 0; i < len; ++i)
        if(!isdigit(s[i])) return false;
    return true;
}
 
//--------------------------------------------
bool is_all_alpha(const std::string& s)
{
    size_t len = s.length();
    for(size_t i = 0; i < len; ++i)
        if(!isalpha(s[i])) return false;
    return true;
}
//--------------------------------------------
 
int main(int argc, char** argv)
{
    std::string sentence = "dfkJh 123kDh DFG scXvb  asdkjh123kjhdas sddjAh112 2245623 asdkdsakjh3 321 sL asd";
    std::istringstream str_stream(sentence);
    std::string curr_word;
    std::string new_string;
    const size_t word_min_length = 7;
 
    while(!str_stream.eof())
    {
        str_stream >> curr_word;
 
        // – все слова, имеющие длину менее 7 символов и состоящие только из цифр, заменяются словами, записанными в обратном порядке;
        if(curr_word.length() < word_min_length && is_all_digit(curr_word))
            std::reverse(curr_word.begin(), curr_word.end());
 
        // – все слова, состоящие только из букв, записываются строчными буквами;
        else if(is_all_alpha(curr_word))
            std::transform(curr_word.begin(), curr_word.end(), curr_word.begin(), tolower);
 
        // – во всех словах, в которых встречаются как буквы, так и цифры, строчные буквы заменяются на прописные;
        else
            std::transform(curr_word.begin(), curr_word.end(), curr_word.begin(), toupper);
 
        new_string+= curr_word + ' ';
    }
 
    // вывод новой строки
    std::cout << new_string << '\n';
    return 0;
}
первые четыре пункта... is_all_digit и is_all_alpha просто для наглядности, вместо них можно использовать std::find_if...
 
Текущее время: 20:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru