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

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

Войти
Регистрация
Восстановить пароль
 
Karnal
0 / 0 / 0
Регистрация: 10.03.2013
Сообщений: 14
#1

Функция выделяет из масива слов все одинаковые слова и заносит в новый массив - C++

11.03.2013, 20:59. Просмотров 203. Ответов 0
Метки нет (Все метки)

но иногда на стадии вывода нового массива вылетает ошибка, я не пойму никак что не так.
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;
 
void newarray(char** &arrw1,int &razm,char** &arrw2);
 
 
int main()
{
 char** a=0;char** b;char s[100]; int i,n=0;
 
 printf("skolko slov hotite vvesti?");
 scanf("%d",&n);
 
 a=(char**)malloc(sizeof(char*)*n);
 
 for(i=0;i<n;i++)
 {
  printf("\nslovo%d ",i+1);
  scanf("%s",&s);
  *(a+i)=(char*)malloc(sizeof(char)*(strlen(s)+1));
  strcpy(*(a+i),s);
 }
 
 newarray(a,n,b);
 
 for(i=0;i<n;i++)
 printf("\n%s",b[i]); 
   
   system("PAUSE"); 
   return EXIT_SUCCESS;
}
 
void newarray(char** &arrw1,int &razm,char** &arrw2)
{
 int k=0,m=0,i,j;
 
 arrw2=(char**)malloc(sizeof(char*)*razm);
  
 for(i=0;i<razm-1;i++)
 {
  for(j=i+1;j<razm;j++)
  
  if(!(strcmp(arrw1[i],arrw1[j])))
  {   
   *(arrw2+m)=(char*)malloc(sizeof(char)*(strlen(arrw1[j])+1));
   strcpy(arrw2[m],arrw1[j]);
   m++;
   k=1;
   break;
  }
      /*if(k)
      {
       *(arrw2+m)=(char*)malloc(sizeof(char)*(strlen(arrw1[i])+1));
       strcpy(arrw2[m],arrw1[i]);
       m++;
       k=0;
      }*/
 
 }
 razm=m+1;
}
может кому-нибудь интересно станет проверить насколько рабочая эта программа и поискать ошибку, заранее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2013, 20:59     Функция выделяет из масива слов все одинаковые слова и заносит в новый массив
Посмотрите здесь:

C++ Написать программу, которая выделяет любим способом в тексте слова палиндромы (слова, которые читаются одинаково справа налево и слева направо)
Поместить в новый массив одинаковые элементы исходных C++
C++ Запись всех повторяющихся слов в новый массив слов
Дана последовательность слов.Напечатать все слова, отличные от слова «по» C++
Массив строки. Удалить с масива слова которые заканчиваються на гласные буквы C++
Функция в строке должна вычислять количество слов (слова разделяются пробелом) C++
При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив C++
C++ Между соседними словами – запятая, за последним словом – точка. Создать новый файл, содержащий все слова, отличные от последнего слова
C++ Использование библиотеки STL , контейнер string. Дан массив слов.Надо удалить все цифры из слов
C++ Если в тексте есть одинаковые слова, заменить все их экземпляры символом из заданного набора
Функция выводит на экран все слова заданной длины. Длина слова является параметром функции C++
C++ Написать функцию SubWord(s,n,L), которая выделяет из строки s L слов, начиная со слова с номером n

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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