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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
deface
0 / 0 / 0
Регистрация: 30.01.2012
Сообщений: 14
#1

Строки - C++

30.01.2012, 18:50. Просмотров 1216. Ответов 10
Метки нет (Все метки)

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

заранее спасибо!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2012, 18:50     Строки
Посмотрите здесь:

Даны три строки. Определить можно ли из символов третьей строки получить первую и вторую строки - Java
Помогите пожалуйста! 1)Даны три строки. Определить можно ли из символов третьей строки получить первую и вторую строки. 2)Дана...

Ввести строки и через n символов первой строки вставить вторую строку, и так до конца строки - C++ Builder
Помогите исправить баг задача состоит в следующем :ввести строку и простроку тоесть две строки и надо через (n) символов первой строки...

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

Слить две строки, вставив символы одной строки между символами другой строки - Pascal
Строка a из n символов лексикографически меньше строки b из n символов, если существует такой индекс j, что aj < bj, а для всех i < j ai =...

Определить длину строки. Если длина строки >6, удалить часть строки в { } скобках. - Turbo Pascal
Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши "Ввод". Программа должна определить длину введенной...

Строки. Определить длину введенной строки, если длина кратна 4, то первая часть строки меняется местами со второй - Turbo Pascal
Ввести с клавиатуры строку символов.признак окончания ввода строки-нажатие клавиши ввод.Программа должна определить длину введенной строки...

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки - C++
Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки. 1. Я дуб дубом,даже...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
30.01.2012, 19:22     Строки #2
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <algorithm>
#include <ctype.h>
 
int main()
{
   std::string s("a123bc4d5ee");
   std::stable_sort(std::begin(s), std::end(s), [] (int i, int j) { return ((isalpha(i)) && (!isalpha(j))); });
   std::cout << s << std::endl;
}
http://liveworkspace.org/code/bb749e...86c36b13162d5c

Добавлено через 6 минут
Вариант на Си:
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
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
int fun(int val) 
{
   if ( isalpha(val) )
      return 0;
   return 1;
}
 
void My_sort(char* first, char* last, int (*Pred) (int )) 
{
   char t, *right, *tt;
   for ( right = last ; (right > first) && Pred(*(right - 1)) ; --right )
      ;
   for ( ; first < right ; ++first )
      if ( Pred(*first) )
      {
         t = *first; 
         for ( tt = first + 1 ; (tt != right) && Pred(*tt) ; ++tt )
            ;
         *first = *(tt);
         *(tt) = t;
         right -= Pred(*(right - 1)) ? 1 : 0;
      }
}
 
int main(void)
{
   char arr[] = "a123bc4d5ee";
 
   My_sort(arr, arr + strlen(arr), fun);
   printf ("%s\n", arr);
 
   return 0;
}
http://liveworkspace.org/code/3ae906...728c7761d27cdf
deface
0 / 0 / 0
Регистрация: 30.01.2012
Сообщений: 14
30.01.2012, 20:03  [ТС]     Строки #3
огромное спасибо

Добавлено через 23 минуты
go, подскажи почему когда я добавляю system ("PAUSE") программа не запускается
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
30.01.2012, 20:10     Строки #4
Цитата Сообщение от deface Посмотреть сообщение
go, подскажи почему когда я добавляю system ("PAUSE") программа не запускается
потому что чтобы она потом компилировалась нужно добавить ещё
C
1
#include <windows.h>
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
30.01.2012, 20:23     Строки #5
Цитата Сообщение от Gepar Посмотреть сообщение
потому что чтобы она потом компилировалась нужно добавить ещё
Не в коем случае!
C++
1
#include <cstdlib>
Dekio
Фрилансер
Эксперт С++
5837 / 1218 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
30.01.2012, 20:23     Строки #6
Цитата Сообщение от go Посмотреть сообщение
return ((isalpha(i)) && (!isalpha(j)));
C++
1
return isalpha(i) && !isalpha(j);
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
30.01.2012, 20:37     Строки #7
go, так ваш вариант на с++ меняет же порядок символов, впрочем сишный тоже это делает, да и зачем вообще что-либо сортировать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main()
{
    char *str="1bla 123 bla bla b4la bla";
    char *temp=str;
    while(*temp)
     if(isalpha(*temp++))
      cout<<*(temp-1);
 
    cout<<endl;
    temp=str;
    while(*temp)
     if(isdigit(*temp++))
      cout<<*(temp-1);
}
Добавлено через 47 секунд
В чистий си пусть автор сам переделывает мой код (если он ему нужен), не люблю printf.

Добавлено через 1 минуту
Цитата Сообщение от go Посмотреть сообщение
Не в коем случае!
Ну у меня такая привычка так как в windows.h подключен уже csdlib.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
30.01.2012, 22:01     Строки #8
Цитата Сообщение от Gepar Посмотреть сообщение
так ваш вариант на с++ меняет же порядок символов,
Пример пожалуйста!
Цитата Сообщение от Gepar Посмотреть сообщение
Ну у меня такая привычка так как в windows.h подключен уже csdlib.
Отвыкайте
Цитата Сообщение от Gepar Посмотреть сообщение
да и зачем вообще что-либо сортировать?
А как еще? Да и сортировка тут "хитрая".

Добавлено через 1 час 20 минут
Цитата Сообщение от Gepar Посмотреть сообщение
В чистий си пусть автор сам переделывает мой код (если он ему нужен), не люблю printf.
Автору такой вариант не подходит. Читайте внимательно
Цитата Сообщение от deface Посмотреть сообщение
Преобразовать строку таким образом,
Vergil111
31 / 31 / 6
Регистрация: 30.11.2010
Сообщений: 81
30.01.2012, 23:49     Строки #9
Еще можно так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
#include <iostream>
#include <algorithm>
#include <string>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    string test("ab213c3d4");
    stable_partition(test.begin(), test.end(), isalpha);
    cout << test << endl;
    return 0;
}
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
01.02.2012, 00:18     Строки #10
Цитата Сообщение от go Посмотреть сообщение
Автору такой вариант не подходит. Читайте внимательно
Цитата Сообщение от deface Посмотреть сообщение
Преобразовать строку таким образом, чтобы сначала в ней были напечатаны только буквы, а потом только цифры, не меняя порядка следования символов в строке.
Мне кажется что здесь имелось в виду просто напечатать строку, а оригинальную не менять, хотя может это задание и нужно трактовать по другому, я не уверен.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2012, 10:18     Строки
Еще ссылки по теме:

Строки. Если в конце строки точка отсутствует, то найти слово, заканчивающееся точкой и перенести его в конец строки. - Pascal
Дана строка, состоящая из слов и содержащая одну точку в конце одного из слов. Если в конце строки точка отсутствует, то найти слово,...

БД с операциями: добавление новой строки, удаление строки, редактирование имеющейся строки - PascalABC.NET
Нужно создать базу данных в паскале, с операциями: добавление новой строки, удаление строки, редактирование имеющей строки. Желательно с...

Строки. Даны строка S и подстрока S1.Удалить из строки S все вхождения строки S1 - Turbo Pascal
Даны строка S и подстрока S1.Удалить из строки S все вхождения строки S1.В строке S подсчитать кол-во вхождений строки S1.

Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк - C++
Есть динамический массив строк. Заполняется, т.е. размер его уже известен будет. Но дальше нужно сделать задание: &quot;Добавить строки, начиная...

Строки. Даны строки S и So. Найти количество вхождений строки So в строку S - Turbo Pascal
Помогите пожалуйста, как сделать эту задачу без этих вот строчек... B:=TRUE; и без команды INC... Вот условие задачи: Даны строки S и...


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

Или воспользуйтесь поиском по форуму:
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
02.02.2012, 10:18     Строки #11
Цитата Сообщение от Gepar Посмотреть сообщение
Мне кажется что здесь имелось в виду просто напечатать строку,
Хотя бы одно слово печать в задании есть??? Не нужно выдумывать новое задание...

Gepar,
Цитата Сообщение от go Посмотреть сообщение
Пример пожалуйста!
Так я дождусь примера?!
Yandex
Объявления
02.02.2012, 10:18     Строки
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru