С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Строки (Язык Pelles C) - C++

07.04.2011, 01:36. Просмотров 885. Ответов 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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
/************************************************
Дана строка предложение. Определить в предложении
слова максимальной и минимальной длины и поменять
их местами.
************************************************/
#include <stdio.h>
#include <string.h>
 
int main(int argc, char *argv[])
{
/****ПОДГОТОВКА СТРОКИ****/
char str[100] = "";
printf("Vvedite stroku: "); gets(str);
printf("vvedennaya stroka: "); puts(str);
 
/****КОПИРОВАНИЕ СТРОКИ****/
char str2[100] = "";
strcpy(str2, str);
printf("copirovannaya stroka: "); puts(str);
 
 
/*ВЫЧИСЛЯЮ МИННИМАЛЬНОЕ СЛОВО*/
int minrazmer=100, minadres;
for(int i=0, J=0; str[i]!=0; i++, J++)
   {
    if(str[i]==' ') 
            {if(J>0) 
                   {if(J<minrazmer) 
                        {minrazmer=J;minadres=i-J; J=0-1;
                        }
                   }J=0-1;
            }
   }
/*ПРОВЕРКА*/
printf("razmer minimalnogo slova: %d \n" ,minrazmer);
printf("adres  minimalnogo slova: %d \n" ,minadres);
 
 
/*ВЫЧИСЛЯЮ МАКСИМАЛЬНОЕ СЛОВО*/
int maxrazmer=0, maxadres;
for(int i=0, J=0; str[i]!=0; i++, J++)
   {
    if(str[i]==' ') 
            {if(J>0) 
                   {if(J>maxrazmer) 
                        {maxrazmer=J;maxadres=i-J; J=0-1;
                        }
                   }J=0-1;
            }
   }
/*ПРОВЕРКА*/
printf("razmer maximalnogo slova: %d \n" ,maxrazmer);
printf("adres  maximalnogo slova: %d \n \n" ,maxadres);
 
 
/***********СДВИГ*************/
/*****ЕСЛИ СНАЧАЛА МАЛАЯ*****/
if(maxadres-minadres>0)
  {
/*СМЕЩЕНИЕ ПРОМЕЖУТКА*/
  for(int j=0; j<maxrazmer-minrazmer; j++)
  {
  for(int i=maxadres+j; i>minadres+minrazmer+j; i--)
      {
       str[i]=str[i-1];
      }
  }
printf("rezultating sdviga: "); puts(str);
/*ВСТАВКА БОЛЬШОГО*/
  for(int i=minadres; i<minadres+maxrazmer; i++)
      {
       str[i]=str2[i-minadres+maxadres];
      }
/*ВСТАВКА МАЛОГО*/
  for(int i=maxadres+(maxrazmer-minrazmer); i<maxadres+(maxrazmer-minrazmer)+minrazmer; i++)
      {
       str[i]=str2[i-(maxadres+(maxrazmer-minrazmer))+minadres];
      }
  }
 
 
/***********СДВИГ*************/
/****ЕСЛИ СНАЧАЛА БОЛЬШАЯ****/
if(minadres-maxadres>0)
  {
/*СМЕЩЕНИЕ ПРОМЕЖУТКА*/
  for(int j=0; j<maxrazmer-minrazmer; j++)
  {
  for(int i=maxadres+maxrazmer-1-j; i<minadres-j; i++)
      {
       str[i]=str[i+1];
      }
  }
printf("rezultating sdviga: "); puts(str);
/*ВСТАВКА МАЛОГО*/
  for(int i=maxadres; i<maxadres+minrazmer; i++)
      {
       str[i]=str2[i-maxadres+minadres];
      }
/*ВСТАВКА БОЛЬШОГО*/
  for(int i=minadres-(maxrazmer-minrazmer); i<(minadres-(maxrazmer-minrazmer))+maxrazmer; i++)
      {
       str[i]=str2[i-(minadres-(maxrazmer-minrazmer))+maxadres];
      }
  }
 
 
printf("rezultating operatinga: "); puts(str);
return 0;
}
//недодел - не считает последнее слово если после него нет пробела.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2011, 01:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки (Язык Pelles C) (C++):

pelles c Задан целочисленный массив размера N - C++
Задан целочисленный массив размера N. Отсортировать серии в массиве в порядке убывания их длины.

Задан вещественный массив размера N pelles c - C++
Задан вещественный массив размера N. Найти сумму второго максимума и третьего минимума массива. Все элементы, расположенные между ними,...

строки язык C - C++
Дана строка, содержащая текст на русском языке. Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву.

Определить язык написания строки - C++
Определить на каком языке написана строка , англ или укр. Дайте совет по алгоритму проверки строки.

оставить программу для вычисления и вывода на экран таблицы сумм pelles c - C++
Составить программу для вычисления и вывода на экран таблицы сумм http://savepic.org/1222085.jpg, где х изменяется в пределах a≤x≤b с...

Программа на тему указатели, функции, строки. (язык Си) - C++
Доброго времени суток. Как это случается со многими - я оттянула решение лабораторных работ до самого конца. В программировании я полный 0,...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2011, 01:36
Привет! Вот еще темы с ответами:

Pelles C, отказывается работать graphics.h - C (СИ)
Отказывается работать graphics.h подскажите где можно скачать его.

Как правильно подключить opengl к Pelles C? - C (Си)
Вроде всё делаю нормально. Закидываю lib и .h d папку в pelles в директорию lib и include , в system32 закидываю dll-ки Подключаю в проге...

Вычислить оптимальный вес для пользователя (Pelles C) - C (СИ)
Добрый вечер. Помогите пожалуйста. Условие задачи. Необходимо написать программу, которая вычисляет оптимальный вес для...

Pelles C не может вывести на экран русские буквы - C (СИ)
Pelles не может вывести на экран русские буквы.Есть ли какие нибудь библиотеки или функции что бы компилятор смог вывести на экран русские...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.