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

Строки - C++

Восстановить пароль Регистрация
 
tatarin4555
10 / 10 / 0
Регистрация: 20.11.2012
Сообщений: 155
Записей в блоге: 1
03.03.2013, 13:57     Строки #1
Дана строка. Преобразуйте ее так, чтобы сначала следовали цифровые символы, а затем все остальные. Порядок следования символов между собой не изменять. Как ее решить на Visual C++ 2008???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2013, 13:57     Строки
Посмотрите здесь:

C++ Скопировать второе слово каждой строки в начало следующей строки
C++ Поменять первый элемент строки с максимальным элементом этой строки
Выявить строки, в которых макс. эл-т больше суммы остальных эл-ов строки C++
C++ Переставить строки матрицы по возрастанию максимальных элементов каждой строки
Даны две строки: S и S0. Определить количество вхождений строки S0 в строку S C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
03.03.2013, 14:04     Строки #2
почитать книжку, а если по делу, то можно новую создать новую строку и туда записывать уже в новом порядке, ну или тогда уже менять символы местами. А как проверить строку на наличие цифр можно почитать здесь, там даже с примером
Кликните здесь для просмотра всего текста
http://www.cplusplus.com/reference/cctype/isalpha/
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
03.03.2013, 14:07     Строки #3
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
#include <algorithm>
#include <iostream>
#include <string>
#include <cctype>
 
bool compare(char ch1, char ch2)
{
    const bool isCh1Disit = isdigit(ch1);
    const bool isCh2Disit = isdigit(ch2);
 
    if (isCh1Disit && isCh2Disit)
        return false;
 
    if (isCh1Disit)
        return true;
 
    return false;
}
 
int main()
{
    std::string str = "a4b5h3c1";
 
    std::cout << "str = " << str << std::endl;
 
    std::stable_sort(str.begin(), str.end(), &compare);
 
    std::cout << "str = " << str << std::endl;
 
    return 0;
}
tatarin4555
10 / 10 / 0
Регистрация: 20.11.2012
Сообщений: 155
Записей в блоге: 1
03.03.2013, 14:15  [ТС]     Строки #4
только почему то ошибку выдает.
1>------ Построение начато: проект: Лаб2, Конфигурация: Debug Win32 ------
1>Компиляция...
1>stdafx.cpp
1>Компиляция...
1>Лаб2.cpp
1>d:\учеба\12во1(2)\лабы с++\лаб2\лаб2\лаб2.cpp(3) : warning C4627: #include <algorithm>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>d:\учеба\12во1(2)\лабы с++\лаб2\лаб2\лаб2.cpp(4) : warning C4627: #include <iostream>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>d:\учеба\12во1(2)\лабы с++\лаб2\лаб2\лаб2.cpp(5) : warning C4627: #include <string>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>d:\учеба\12во1(2)\лабы с++\лаб2\лаб2\лаб2.cpp(6) : warning C4627: #include <cctype>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>d:\учеба\12во1(2)\лабы с++\лаб2\лаб2\лаб2.cpp(34) : fatal error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник.
1>Журнал построения был сохранен в "file://d:\Учеба\12во1(2)\Лабы С++\Лаб2\Лаб2\Debug\BuildLog.htm"
1>Лаб2 - ошибок 1, предупреждений 4
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
В чем ошибка не пдскажете?
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
03.03.2013, 14:17     Строки #5
tatarin4555, вы забыли директивы подключить!

C++
1
2
3
4
#include <algorithm>
#include <iostream>
#include <string>
#include <cctype>
tatarin4555
10 / 10 / 0
Регистрация: 20.11.2012
Сообщений: 155
Записей в блоге: 1
03.03.2013, 14:24  [ТС]     Строки #6
подскажи пожалуйста как это сделать, я еще новичек в этом
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
03.03.2013, 14:26     Строки #7
tatarin4555,

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
#include "stdafx.h"
#include <algorithm>
#include <iostream>
#include <string>
#include <cctype>
 
bool compare(char ch1, char ch2)
{
    const bool isCh1Disit = isdigit(ch1);
    const bool isCh2Disit = isdigit(ch2);
 
    if (isCh1Disit && isCh2Disit)
        return false;
 
    if (isCh1Disit)
        return true;
 
    return false;
}
 
int main()
{
    std::string str = "a4b5h3c1";
 
    std::cout << "str = " << str << std::endl;
 
    std::stable_sort(str.begin(), str.end(), &compare);
 
    std::cout << "str = " << str << std::endl;
 
    return 0;
}
tatarin4555
10 / 10 / 0
Регистрация: 20.11.2012
Сообщений: 155
Записей в блоге: 1
03.03.2013, 14:29  [ТС]     Строки #8
Большое спасибо))
Еще одна просьба, как увидеть ответ?
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
03.03.2013, 14:31     Строки #9
tatarin4555, а что за IDE, если студия то Ctrl + f5
tatarin4555
10 / 10 / 0
Регистрация: 20.11.2012
Сообщений: 155
Записей в блоге: 1
03.03.2013, 14:32  [ТС]     Строки #10
Увидел спасибо)
а можно сделать чтоб эту строку я сам вводил?
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
03.03.2013, 14:36     Строки #11
C++
1
2
3
4
5
6
7
вместо:
std::string str = "a4b5h3c1";
 
Пишем:
std::string str;
std::cin >> str;
....
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
03.03.2013, 14:46     Строки #12
tatarin4555, getline(cin, str, '\n'); так можешь вводить даже с пробелами
tatarin4555
10 / 10 / 0
Регистрация: 20.11.2012
Сообщений: 155
Записей в блоге: 1
03.03.2013, 14:48  [ТС]     Строки #13
А вместо чего это добавить?
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
03.03.2013, 14:52     Строки #14
tatarin4555,

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
#include "stdafx.h"
#include <algorithm>
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
 
bool compare(char ch1, char ch2)
{
    const bool isCh1Disit = isdigit(ch1);
    const bool isCh2Disit = isdigit(ch2);
 
    if (isCh1Disit && isCh2Disit)
        return false;
 
    if (isCh1Disit)
        return true;
 
    return false;
}
 
int main()
{
    string str;
    cout << "Enter the string: ";
    getline(cin, str, '\n');
 
    cout << "str = " << str << endl;
 
    stable_sort(str.begin(), str.end(), &compare);
 
    cout << "str = " << str << endl;
 
    return 0;
}
tatarin4555
10 / 10 / 0
Регистрация: 20.11.2012
Сообщений: 155
Записей в блоге: 1
03.03.2013, 14:55  [ТС]     Строки #15
Цитата Сообщение от DU Посмотреть сообщение
C++
1
2
3
4
5
6
7
вместо:
std::string str = "a4b5h3c1";
 
Пишем:
std::string str;
std::cin >> str;
....
заменил а вводить сам ничего не могу все такая же программа

Добавлено через 2 минуты
Цитата Сообщение от yoghurt92 Посмотреть сообщение
tatarin4555,

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
#include "stdafx.h"
#include <algorithm>
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
 
bool compare(char ch1, char ch2)
{
    const bool isCh1Disit = isdigit(ch1);
    const bool isCh2Disit = isdigit(ch2);
 
    if (isCh1Disit && isCh2Disit)
        return false;
 
    if (isCh1Disit)
        return true;
 
    return false;
}
 
int main()
{
    string str;
    cout << "Enter the string: ";
    getline(cin, str, '\n');
 
    cout << "str = " << str << endl;
 
    stable_sort(str.begin(), str.end(), &compare);
 
    cout << "str = " << str << endl;
 
    return 0;
}
ввожу строку она ее не преобразует все так же остается и че то глючит программа
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
03.03.2013, 14:59     Строки #16
tatarin4555, странно, у меня все работает:

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
#include "stdafx.h"
#include <algorithm>
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
 
bool compare(char ch1, char ch2)
{
    const bool isCh1Disit = isdigit(ch1);
    const bool isCh2Disit = isdigit(ch2);
 
    if (isCh1Disit && isCh2Disit)
        return false;
 
    if (isCh1Disit)
        return true;
 
    return false;
}
 
int main()
{
    string str;
    cout << "Enter the string: ";
    getline(cin, str, '\n');
 
    cout << "str = " << str << endl;
 
    stable_sort(str.begin(), str.end(), &compare);
 
    cout << "str = " << str << endl;
 
    return 0;
}
Миниатюры
Строки  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2013, 15:53     Строки
Еще ссылки по теме:

C++ Упорядочить строки матрицы лексикографически по неубыванию первых k элементов строки.
C++ Упорядочить строки матрицы D (m. n) Лексикографически по неубыванию первых k элементов строки
Даны три строки: S1, S2, S3. Заменить в строке S1 первое вхождение строки S2 на S3 C++

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

Или воспользуйтесь поиском по форуму:
tatarin4555
10 / 10 / 0
Регистрация: 20.11.2012
Сообщений: 155
Записей в блоге: 1
03.03.2013, 15:53  [ТС]     Строки #17
Цитата Сообщение от yoghurt92 Посмотреть сообщение
tatarin4555, странно, у меня все работает:

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
#include "stdafx.h"
#include <algorithm>
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
 
bool compare(char ch1, char ch2)
{
    const bool isCh1Disit = isdigit(ch1);
    const bool isCh2Disit = isdigit(ch2);
 
    if (isCh1Disit && isCh2Disit)
        return false;
 
    if (isCh1Disit)
        return true;
 
    return false;
}
 
int main()
{
    string str;
    cout << "Enter the string: ";
    getline(cin, str, '\n');
 
    cout << "str = " << str << endl;
 
    stable_sort(str.begin(), str.end(), &compare);
 
    cout << "str = " << str << endl;
 
    return 0;
}
у меня тож запускается но потом выходит ошибка и приходится ее прервать че то приводит к точке останова

Добавлено через 2 минуты
О и у мя заработала) спасибо тебе)
Yandex
Объявления
03.03.2013, 15:53     Строки
Ответ Создать тему
Опции темы

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