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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Копирование строки из массива в массив, Копирование с определенными условиями 
V
    Опции темы
NeuZeitgeist
Дата 3.5.2009, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Нужно скопировать строку из одного массива в другой исключив при этом некоторые символы (знак доллара $ и запятую, оставив только числа и точку).
При прохождении цикла все в порядке, а когда проверяю содержание массива, то там или пусто или мусор. Подскажите, пожалуйста, в чем ошибка. Заранее спасибо smile

Код

#include<iostream>

using namespace std;

const int M = 30;
const int N = 30;
int main()
{
    char mon_ch1[M];//первая строка
    char mon_ch2[N];//вторая строка
    unsigned int i = 0, j = 0;
    cout << "Vvedite chislo" << endl;
    cin >> mon_ch1;
    cout << "Vi vveli " << mon_ch1 << endl;

    for(i = 0; i < strlen(mon_ch1); i++)
    if((mon_ch1[i] >= '0' && mon_ch1[i] <= '9') || mon_ch1[i] == '.')
    {
        mon_ch2[j] = mon_ch1[i];
        cout << mon_ch2[j];
    }
    mon_ch2[j] = '\0';
    cout << "\nPervii massive strok soderjit: " << mon_ch1;
    cout << "\nVtoroi massive strok soderjit: " << mon_ch2;//ВОТ ТУТ НИЧЕГО НЕТ...
    return 0;
}

PM   Вверх
azesmcar
Дата 3.5.2009, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Код

 mon_ch2[j] = '\0';

j нигде не изменяется, так что вы присваиваете mon_ch2[0] = 0 и разумеется в нем пустая строка.

предполагаю что тут
Код

mon_ch2[j] = mon_ch1[i];

должно было быть написано вот так
Код

mon_ch2[j++] = mon_ch1[i];


Вот полный код
Код

#include<iostream>
using namespace std;
const int M = 30;
const int N = 30;
int main()
{
    char mon_ch1[M];//первая строка
    char mon_ch2[N];//вторая строка
    unsigned int i = 0, j = 0;
    cout << "Vvedite chislo" << endl;
    cin >> mon_ch1;
    cout << "Vi vveli " << mon_ch1 << endl;
    for(i = 0; i < strlen(mon_ch1); i++)
    {
        if((mon_ch1[i] >= '0' && mon_ch1[i] <= '9') || mon_ch1[i] == '.')
        {
            mon_ch2[j++] = mon_ch1[i];
            cout << mon_ch2[j];
        }
    }
    mon_ch2[j] = '\0';
    cout << "\nPervii massive strok soderjit: " << mon_ch1;
    cout << "\nVtoroi massive strok soderjit: " << mon_ch2;//ВОТ ТУТ НИЧЕГО НЕТ...
    return 0;
}




Это сообщение отредактировал(а) azesmcar - 3.5.2009, 20:38
PM   Вверх
NeuZeitgeist
Дата 3.5.2009, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А ларчик просто открывался! smile 
Спасибо огроменное!!! Я бы еще полночи глаза пялил в экран, пока бы додумался. Совсем упустил второй счетчик. Все работает отлично.
Еще раз спасибо!!!
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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