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

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

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

Строки - C++

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

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

заранее спасибо!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2012, 18:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки (C++):

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

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

Удалить строки динамической матрицы, начиная со строки К1 и до строки К2 - C++
Сформировать динамический двумерный массив, заполнить его случайными числами и удалить строки, начиная со строки К1 и до строки К2 вот...

Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней - C++
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка...

Как первые два символа строки переставить в конец этой строки? - C++
Собственно вопрос

Указать номер строки, максимально удаленной от первой строки заданной матрицы - C++
Задание: Расстояние между k-й и 1-й строками квадратной матрицы А опеределяется как r = сумма от j=1 до N от (abs(akj)*abs(a1j)). Указать...

10
go
Эксперт С++
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/bb749e7c43ff49101186c36b13162d5c

Добавлено через 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/3ae906138429e5ecea728c7761d27cdf
0
deface
0 / 0 / 0
Регистрация: 30.01.2012
Сообщений: 14
30.01.2012, 20:03  [ТС] #3
огромное спасибо

Добавлено через 23 минуты
go, подскажи почему когда я добавляю system ("PAUSE") программа не запускается
0
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
30.01.2012, 20:10 #4
Цитата Сообщение от deface Посмотреть сообщение
go, подскажи почему когда я добавляю system ("PAUSE") программа не запускается
потому что чтобы она потом компилировалась нужно добавить ещё
C
1
#include <windows.h>
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
30.01.2012, 20:23 #5
Цитата Сообщение от Gepar Посмотреть сообщение
потому что чтобы она потом компилировалась нужно добавить ещё
Не в коем случае!
C++
1
#include <cstdlib>
0
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);
0
Gepar
1177 / 533 / 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.
1
go
Эксперт С++
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 Посмотреть сообщение
Преобразовать строку таким образом,
0
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;
}
1
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
01.02.2012, 00:18 #10
Цитата Сообщение от go Посмотреть сообщение
Автору такой вариант не подходит. Читайте внимательно
Цитата Сообщение от deface Посмотреть сообщение
Преобразовать строку таким образом, чтобы сначала в ней были напечатаны только буквы, а потом только цифры, не меняя порядка следования символов в строке.
Мне кажется что здесь имелось в виду просто напечатать строку, а оригинальную не менять, хотя может это задание и нужно трактовать по другому, я не уверен.
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
02.02.2012, 10:18 #11
Цитата Сообщение от Gepar Посмотреть сообщение
Мне кажется что здесь имелось в виду просто напечатать строку,
Хотя бы одно слово печать в задании есть??? Не нужно выдумывать новое задание...

Gepar,
Цитата Сообщение от go Посмотреть сообщение
Пример пожалуйста!
Так я дождусь примера?!
0
02.02.2012, 10:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2012, 10:18
Привет! Вот еще темы с ответами:

Как считать строки из файла, если там больше одной строки? - C++
Как считать строки из файла в массив. Если в файле одна строка, то нет проблем, но если несколько, то при использовании функции fgets ...

Вычислить длину введенной строки и вывести символы строки с четными индексами - C++
Напишите программу, которая требует ввода строки с клавиатуры. Программа вычисляет длину строки и выводит на экран только те символы...

Функция перезаписывает символы строки заданным количеством символов другой строки - C++
Программа работает. Но не совсем правильно. В конечной строке появляются непонятные символы, которых быть там не должно. В программе нельзя...

Прибавить ко всем элементам каждой строки максимальное значение этой строки - C++
добрый вечер! Помогите пожалуйста доработать код! Изменить текущий массив, прибавив ко всем элементам каждой строки максимальное...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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