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

Дан массив слов. Определить количество слов массива, которые не являются «перевертышем». - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
juli.ya92
2 / 2 / 0
Регистрация: 25.09.2010
Сообщений: 82
02.10.2011, 13:31     Дан массив слов. Определить количество слов массива, которые не являются «перевертышем». #1
Дан массив слов. Определить количество слов массива, которые не являются «перевертышем».

Разработать программу на языке Си. Допускается использование переменных. Все строки должны быть размещены динамически с помощью оператора new. Разделителем слов в предложении считать только пробел. Все остальные символы считать частью слов предложения. Посимвольный доступ к элементам строки должен осуществляться с помощью указателей. Функции для работы со строками использовать можно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2011, 13:31     Дан массив слов. Определить количество слов массива, которые не являются «перевертышем».
Посмотрите здесь:

C++ Функция, получает строку слов и рзделителей, а на выходе имеет массив слов из строки и количество этих слов
Дано строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). ​​Определить количество слов, которые заканчиваются одной и той C++
C++ Дана строка, состоящая из русских слов. Найти количество слов, которые содержат ровно три буквы «А»
Дан текст, найти количество слов и количество слов, у которых первый и последний символ совпадают C++
C++ Определить количество слов, которые содержат введенный символ
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
02.10.2011, 13:35     Дан массив слов. Определить количество слов массива, которые не являются «перевертышем». #2
Цитата Сообщение от juli.ya92 Посмотреть сообщение
на языке Си
Цитата Сообщение от juli.ya92 Посмотреть сообщение
оператора new
Странно как-то...
juli.ya92
2 / 2 / 0
Регистрация: 25.09.2010
Сообщений: 82
02.10.2011, 13:36  [ТС]     Дан массив слов. Определить количество слов массива, которые не являются «перевертышем». #3
Имеется ввиду например
char *j =new char;
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
02.10.2011, 13:38     Дан массив слов. Определить количество слов массива, которые не являются «перевертышем». #4
juli.ya92, так делать в Си нельзя.
juli.ya92
2 / 2 / 0
Регистрация: 25.09.2010
Сообщений: 82
02.10.2011, 13:40  [ТС]     Дан массив слов. Определить количество слов массива, которые не являются «перевертышем». #5
Мда ну незнаю тогда чему нас в универе учат...
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
02.10.2011, 14:13     Дан массив слов. Определить количество слов массива, которые не являются «перевертышем». #6
В Си нет оператора new. Есть функции malloc/calloc/realloc, с помощью которых можно добиться того же эффекта.
juli.ya92
2 / 2 / 0
Регистрация: 25.09.2010
Сообщений: 82
02.10.2011, 14:14  [ТС]     Дан массив слов. Определить количество слов массива, которые не являются «перевертышем». #7
Ну а в С++ он есть?
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
02.10.2011, 14:18     Дан массив слов. Определить количество слов массива, которые не являются «перевертышем». #8
Цитата Сообщение от juli.ya92 Посмотреть сообщение
Ну а в С++ он есть?
Есть. Только в с++ лучше использовать std::string.
juli.ya92
2 / 2 / 0
Регистрация: 25.09.2010
Сообщений: 82
02.10.2011, 14:19  [ТС]     Дан массив слов. Определить количество слов массива, которые не являются «перевертышем». #9
Мы такое ещё не проходили это раздел для начинающих или как?
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
02.10.2011, 15:05     Дан массив слов. Определить количество слов массива, которые не являются «перевертышем». #10
Цитата Сообщение от juli.ya92 Посмотреть сообщение
Ну а в С++ он есть?
Ну а в С++ он есть. Но вы-то просили на С.

Не по теме:

Цитата Сообщение от juli.ya92 Посмотреть сообщение
это раздел для начинающих или как?
Где та грань, которая разделяет "начинающих" и "не начинающих"?

juli.ya92
2 / 2 / 0
Регистрация: 25.09.2010
Сообщений: 82
02.10.2011, 15:10  [ТС]     Дан массив слов. Определить количество слов массива, которые не являются «перевертышем». #11
Разработать программу на языке Си++
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
02.10.2011, 15:27     Дан массив слов. Определить количество слов массива, которые не являются «перевертышем». #12
Если я правильно понял задание, то как-то так.
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
#include <iostream>
#include <cstring>
 
#define DELIMS " "
 
bool is_pal( const char * word )
{
    for ( const char  *i = word, *j =  word + strlen(word) - 1; i < j ; )
        if ( *i++ != *j-- )
            return false;
    return true;
}
 
int main()
{
    const int MAXSIZE = 128;
    
    char * sentence = new char [ MAXSIZE ];
    std::cin.getline( sentence, MAXSIZE );
    
    int count = 0;
    
    for ( char * p = strtok(sentence, DELIMS ); p ; p = strtok(0, DELIMS) )
    {
        if ( !is_pal( p ) )
            ++count;
    }
    
    delete[] sentence;
    
    std::cout << count;
}
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
02.10.2011, 15:49     Дан массив слов. Определить количество слов массива, которые не являются «перевертышем». #13
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
64
65
66
#include <iostream>
#include <cstring>
 
typedef char char_t;
typedef char_t * str_t;
 
void realloc_str(char_t *&str, size_t new_size)
{
    str_t new_str = new char_t [new_size] ();
 
    strcpy(new_str, str);
 
    delete [] str;
 
    str = new_str;
}
 
str_t get_str()
{
    static const size_t QUANTUM = 32;
 
    str_t str = new char_t [QUANTUM] ();
 
    size_t multiplier = 1;
 
    size_t i = 0;
 
    do
    {
        if (i >= multiplier * QUANTUM - 1)
            realloc_str(str, ++multiplier * QUANTUM);
 
        std::cin.get(str[i]);
    }
    while (str[i++] != '\n');
 
    str[i - 1] = '\0';
 
    return str;
}
 
bool is_palindrome(str_t str)
{
    for (str_t i = str, j = str + strlen(str) - 1; i < j; ++i, --j)
        if (*i != *j)
            return false;
 
    return true;
}
 
int main()
{
    static const str_t delims = " ";
 
    str_t str = get_str();
 
    size_t count = 0;
 
    for (str_t p = strtok(str, delims); p != 0; p = strtok(0, delims))
        if (!is_palindrome(p))
            ++count;
 
    std::cout << "Number of palindromes: " << count << std::endl;
 
    return 0;
}
Добавлено через 1 минуту
Ха, у нас с diagonом коды-близнецы)) Только я извратился с вводом бесконечной строки))
fasked
02.10.2011, 15:50
  #14

Не по теме:

Цитата Сообщение от silent_1991 Посмотреть сообщение
C++
1
typedef char_t * str_t;
Извращенец

silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
02.10.2011, 15:52     Дан массив слов. Определить количество слов массива, которые не являются «перевертышем». #15

Не по теме:

fasked, а вдруг на wchar_t захочется перелезть? Тогда менять только в одном месте



Добавлено через 1 минуту

Не по теме:

Правда с ним ни одна библиотечная строковая функция работать не будет

fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
02.10.2011, 15:54     Дан массив слов. Определить количество слов массива, которые не являются «перевертышем». #16
silent_1991, для виндузятников tchar есть.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2011, 16:27     Дан массив слов. Определить количество слов массива, которые не являются «перевертышем».
Еще ссылки по теме:

C++ Дан текст определить количество слов в нём.
C++ Использование библиотеки STL , контейнер string. Дан массив слов.Надо удалить все цифры из слов
C++ Определить в последовательности количество слов, которые начинаются с буквы a

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

Или воспользуйтесь поиском по форуму:
juli.ya92
2 / 2 / 0
Регистрация: 25.09.2010
Сообщений: 82
02.10.2011, 16:27  [ТС]     Дан массив слов. Определить количество слов массива, которые не являются «перевертышем». #17
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
64
65
66
67
68
69
//---------------------------------------------------------------------------
#include<stdio.h>
#include<conio.h>
#include<string.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
 
#pragma argsused
void main()
{
  int ks;
  char *s=new char [150];
  char **MS= new char *[80];
  for(int ii=0;ii<80;ii++)
    MS[ii]=new char[10];
  puts("vvedite text");
  gets(s);
  int f=0;
  char *t=new char;
  char **i ;
  char *j =new char;
  char *k =new  char;
//разбиение на массив
  k=s;
  t=strtok(k," ");
  while(t!=NULL)
  {
   strcpy(*(MS+f),t); //MS[f]
   t=strtok(NULL," ");
   f++;
  }
  ks=f; // количество слов
//  int len=strlen(k);
  int kol=0;
  char *s1=new char[11];
  //s1="0123456789";
  char *g=new char;
  int d1=0,kz=0;
  for(i=MS;i<MS+ks;i++)
    {
      for(j=*i;j<*i+strlen(*i)/2;j++)
    {
      if(*j==*(j+strlen(*i)-d1-1)) kol++;
      if(kol==strlen(*i)/2)
        {
          kz++;
          kol=0;
         int kl=d1;
         d1=d1-kl-2;
        }
       d1+=2;               
     }
    }
    printf("%d",ks-kz);
  getch();
  delete []s;
  for(ii=0;ii<50;ii++)
    delete []MS[ii];
  delete []MS;
  delete []t;
  delete []j;
  delete []k;
  delete []g;
  delete []s1;
 
}
//---------------------------------------------------------------------------
Только вот вместо переменной D1 мне нужно исп какую-то другую переменную только вот не пойму какую которая сохраняет кол-во проходов по циклу....
 Комментарий модератора 
Используйте теги форматирования кода!
Yandex
Объявления
02.10.2011, 16:27     Дан массив слов. Определить количество слов массива, которые не являются «перевертышем».
Ответ Создать тему
Опции темы

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