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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программа вылетает с ошибкой Access Violation 
:(
    Опции темы
MOTOR4eGG
Дата 6.5.2009, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем привет
Задача у меня такая: нужно отсортировать слова по алфавиту в строке, и исключить повторение слов.
с сортировкой все нормально получилось через массив указателей, а для повторения нужен обычный массив
попробовал использовать функцию strcmp, доходит до нее и вылетает с ошибкой Access violation
Подскажите в чем ошибка, или как можно обойти strcmp и преобразовать массив указателей в обычный массив?
заранее благодарю

Код

#include <iostream>
#include <conio.h>
#include <iterator>
#include <string.h>
#include <stdio.h>
using namespace std;



void main()
{
    char str[100];
    int a(0);
    const char *mas[100];
    cout<<"Vvedite stroku   ";
    cin.getline(str,100);
    char *c;
    int j=0;
    c=strtok(str," ");
    while (c != NULL)
    {        
        mas[j]=c;
        c=strtok(NULL," ");
        j++;
    }
    
    int b=j;
    int z=0;
    const char *null;
    for(int s=0;s<b-1;s++)
    {
        for(int i=0;i<=b-2  ;i++)
        {
            if(*mas[i]>*mas[i+1])
            {
                null=mas[i];
                mas[i]=mas[i+1];
                mas[i+1]=null;
            }
        }
    }
    for(int i=1;i<=j;i++)
    {
        strcmp(mas[i-1],mas[i]); //здесь выдает ошибку
    }

    for(int r=0;r<=b;r++)
    {
        printf("%s   ", mas[r]);
    }    
    getch();
}

PM MAIL   Вверх
zim22
Дата 6.5.2009, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



Цитата(MOTOR4eGG @  6.5.2009,  17:53 Найти цитируемый пост)
Задача у меня такая: нужно отсортировать слова по алфавиту в строке, и исключить повторение слов.

Код

#include <algorithm>
#include <vector>
#include <string>
#include <sstream>
#include <iostream>

int main()
{
  std::string text("this is text really it is beautiful and i really love it");
  std::istringstream is(text);
  std::vector<std::string> vs((std::istream_iterator<std::string>(is)),
                               std::istream_iterator<std::string>());
  std::sort(vs.begin(), vs.end());
  std::vector<std::string>::iterator end_it = std::unique(vs.begin(), vs.end());
  vs.erase(end_it, vs.end());
  std::copy(vs.begin(), vs.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
    return 0;
}


В условии измените <= на <
Код

for(int i=1;i<j;i++)
{
    strcmp(mas[i-1],mas[i]); //здесь выдает ошибку
}


Это сообщение отредактировал(а) zim22 - 6.5.2009, 18:14


--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

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


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

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


 




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


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

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