Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите со строками 
:(
    Опции темы
Telepyz
Дата 18.11.2008, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 9.7.2007

Репутация: нет
Всего: 1



Имеется строка, содержащая буквы и цифры. Преобразовать эту строку так, чтобы сначала в ней шли все цифры, а затем – все буквы исходной строки.

не получается, выводит только последнюю букву и последнюю цифру...(((

помогите пожалуйста

Код

#include "stdafx.h"
#include <iostream>
#include "string.h"
#include <ctype.h>
#include <stdio.h>

using namespace std;

void main()
{
int len = 254;
     int l;
     char* ch = new char [len];
     gets(ch);
     l = strlen(ch);
     char* temp = new char [l+1];
     cout<<l<<'\n';
     char s;
     for (int i=0; i<l; i++)
     {
          s = ch[i];
          if ((isalnum(s))&(isalpha(s))) 
                 sprintf(temp, "%c" , s);
     }
           cout<<temp<<'\n';
     for (int i=0; i<l; i++)
     {
          s= ch[i];
          if (isalnum(s) && !isalpha(s)) 
                 sprintf(temp, "%c" , s);
     }
     cout<<temp<<'\n';
}

--------------------
обновить драйвер
PM MAIL   Вверх
destrd
Дата 18.11.2008, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 1.10.2008

Репутация: нет
Всего: 4



Цитата(Telepyz @  18.11.2008,  22:54 Найти цитируемый пост)
выводит только последнюю букву и последнюю цифру

Вы записываете всё время в начало строки, вот и получается последний символ всегда. они перезаписываются, остаётся последний.
Надо как-то так делать
Код
tmp = new char[l + 1];
char *pTmp = tmp;
.
.
.
if ()
{
  sprintf(pTmp, "%c", s);
  pTmp++;
}
std::cout<<tmp<<std::endl;


Тогда получится строка.

Это сообщение отредактировал(а) destrd - 18.11.2008, 23:10
--------------------
Some people, when confronted with a problem, think, "I known, I'll use regular expressions." Now they have two problems.        -- Jamie Zawinski in comp.lang.emacs
PM MAIL ICQ   Вверх
Telepyz
Дата 18.11.2008, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 9.7.2007

Репутация: нет
Всего: 1



Благодарю)))
--------------------
обновить драйвер
PM MAIL   Вверх
Rififi
Дата 19.11.2008, 02:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 11
Всего: 36



Цитата(Telepyz @  18.11.2008,  23:54 Найти цитируемый пост)
Имеется строка, содержащая буквы и цифры. Преобразовать эту строку так, чтобы сначала в ней шли все цифры, а затем – все буквы исходной строки.


Код

std::string shift(const std::string& s)
{
    std::string res = s;
    std::stable_partition(res.begin(), res.end(), &isdigit);
    return (res);
}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0766 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.