Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 2
Регистрация: 07.12.2016
Сообщений: 35

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

10.11.2017, 07:32. Показов 3197. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет Тут есть задание и я застрял. Помогите

a) Текст состоит из букв, цифр и знаков операций. Все бук¬вы входящие в слово, собрать в его начале (с сохранением порядка вхождения букв в текст), а знаки и цифры также с сохранением порядка разместить вслед за полученной группой букв, без использования дополнительного массива.
b) Удалить из текста слова, состоящие только из букв.
c) Проверить входит ли текст А в текст В.
Вот мои наработки, остановился на моменте сравнения символа с клавы с алфавитом, алфавит в файлах написан вертикально (Не знаю, есть ли разница). Не может найти символ с клавиатуры из файла.
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
#include <windows.h>
#include <math.h>
#include <stdio.h>
#include <locale.h>
#include <string.h>
void main()
{
    setlocale(LC_ALL, "Rus");
FILE *rl=fopen("RL.txt","r"),
*el=fopen("EL.txt","r"),
*lol=fopen("lol.txt","r");
int f;
if (rl == NULL || el == NULL || lol == NULL) {
printf ("Чего-то не хватает...");  // файл не удалось открыть
}
else {
 
int i;
int c;
char a[100];
scanf("%c",&a[i]);
int k=strlen(a);
printf ("%d \n",k);
 
for (int i=0; i<=k-1; i++)
if (a[i] == ' ')
{
    printf ("lol \n");
}
else 
{
if (a[i] == fgetc(rl) || a[i] == fgetc(el))
{
    
    printf ("%c, %d \n",&a[i],i);
}
else
{
    printf ("Обнаружен символ: %c \n",&a[i]);
}
}
}
}
Добавлено через 23 минуты
C
1
2
3
4
5
if (a[i] == fgetc(rl) || a[i] == fgetc(el))
{
    
    printf ("%c, %d \n",&a[i],i);
}
Изменил на
C
1
2
3
4
if (a[i] == fgets(rrl,100,rl) || a[i] == fgets(eel,100,el))
{
    printf ("%c, %d \n",&a[i],i);
}
перед этим
C
1
2
char rrl[100];
char eel[100];
но все равно результат какой-то левый спец символ в виде кружочка
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.11.2017, 07:32
Ответы с готовыми решениями:

Переместить слова в начало строки
Добрый день! Дана строка CString типа, перем m_f и m_last указывают диапазон слов, которые надо перенести в начало строки. char...

Как в каждом слове заданной строки переместить гласные буквы в начало?
как в каждом слове строки переместить гласние букви в начало?с++

В строке, состоящей из алфавитно-цифровых символов, переместить все буквы в ее начало
В строке, состоящей из алфавитно-цифровых символов, переместить все буквы в ее начало. Помогите написать листинг

25
0 / 0 / 2
Регистрация: 07.12.2016
Сообщений: 35
20.12.2017, 05:57  [ТС]
Студворк — интернет-сервис помощи студентам
Здрасти!
И снова я с этой задачей, только на С++. Тут уже есть наработки, но как обычно, не конец программы
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
#include <windows.h>
#include <math.h>
#include <stdio.h>
#include <locale.h>
#include <string.h>
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Rus");
FILE *fl=fopen("data.txt","r+"),
*el=fopen("EL.txt","r"),
*lol=fopen("lol.txt","r");
char eel[100];
char arr[100]; 
if (el == NULL || lol == NULL || fl == NULL) {
printf ("Чего-то не хватает...");  // файл не удалось открыть
exit (1);
}
else {
fgets(eel,100,el);
puts(eel);
int i,c;
fgets(arr,40,fl);
int k=strlen(arr);
printf ("%d \n",k);
puts(arr);
for (int i=0; i<=k-1; i++)
if (arr[i] == ' ')
{
    printf ("Пробел \n");
}
else 
{
if ('a' <= arr[i] && arr[i] <= 'z')
{
    cout<<arr[i]<<","<<i<<endl;
}
if ('а' <= arr[i] && arr[i] <= 'я')
{
    cout<<arr[i]<<","<<i<<endl;
}
if ('0' <= arr[i] && arr[i] <= '9')
{
    cout<<arr[i]<<","<<i<<endl;
}
}
}
}
Задание : a)Текст состоит из букв, цифр и знаков операций. Все буквы входящие в слово, собрать в его начале (с сохранением порядка вхождения букв в текст), а знаки и цифры также с сохранением порядка разместить вслед за полученной группой букв, без использования дополнительного массива.
b)Удалить из текста слова, состоящие только из букв.
c)Проверить входит ли текст А в текст В.
Программа пока что только отличает буквы русского, английского алфавитов и цифры. Прошу помочь в связи с нехваткой времени.Если смогу, то и сам буду выкладывать постепенные решения.
0
174 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 719
20.12.2017, 10:56
Цитата Сообщение от volodin661 Посмотреть сообщение
Как быть ?
Обдумайте свой пост пару раз... Мне кажется в нём нет смысла. ИБО:
Цитата Сообщение от volodin661 Посмотреть сообщение
Удалить из текста слова
В каком языке мира СЛОВО разделяется пробелами?

Добавлено через 54 секунды
Цитата Сообщение от SegaMD64BIT Посмотреть сообщение
Про удаление пока ничего нет
А что должно быть? Вы месяц ничего не делаете, а я должен писать что-то большее?
0
0 / 0 / 2
Регистрация: 07.12.2016
Сообщений: 35
20.12.2017, 11:05  [ТС]
SlavaSokolov, вы начинаете уже докучать.
Вы не один, может быть кто и поможет. Надеюсь. Для чего же тогда сайт этот
И вообще, я же вроде бы отдельную тему создавал, а её слили с этой. Кул.
0
174 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 719
20.12.2017, 11:09
Цитата Сообщение от SegaMD64BIT Посмотреть сообщение
докучать.
Я терпеть не могу тех, кто нифига не делает, а просит помощи. Тоните! Метла вам пухом.
Цитата Сообщение от SegaMD64BIT Посмотреть сообщение
Для чего же тогда сайт этот
Ну если вы так думаете, то у вас уже проблемы и серьёзные.
Цитата Сообщение от SegaMD64BIT Посмотреть сообщение
И вообще,
зачем вы пишите свой код на плюсах в теме C для начинающих?
0
0 / 0 / 2
Регистрация: 07.12.2016
Сообщений: 35
20.12.2017, 11:21  [ТС]
SlavaSokolov, вы терпеть не можете, но кто вас просит об этом говорить?
Я сначала писал код на С, а сейчас мне сказали, что лучше на С++ выглядеть будет лучше (с намеком, что на С принимать не будут).
Может быть кто-нибудь ПО ТЕМЕ ответит, а не спор заводить
0
0 / 0 / 2
Регистрация: 07.12.2016
Сообщений: 35
22.12.2017, 14: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
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
#include <iostream>
#include <cstring>
#include <string.h>
#include <locale.h>
#define M 15
#include <stdio.h>
#include <Windows.h>
#include<iomanip>
#include<ctime>
#include <fstream>
using namespace std;
int main(){
    SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
char character, mass1[] ="ye2V23p...3 thi1s co2de 23 is very important for the execution of the program.\n";    
char mass2[]=" ye2V23p... this code is very important for the execution of the program. This is test programm\n";
        cout<<"Ââåäåííûé òåêñò1"<<endl;
int ix = 0,x=0;
char sep[2]=" ";
char *istr;
istr = strtok (mass1, sep);
int ij=0;
int probel;
  while (mass1[ix])                           
  {
    character = mass1[ix];   
    std::cout << character;
    ix++;                                   
  }
  cout<<endl;
  ix=0;
  cout<<endl<<"Ââåäåííûé òåêñò2"<<endl;
  while (mass2[ij])                           
  {
    character = mass2[ij];   
    std::cout << character;
    ij++;                                   
  }
  cout<<endl;
  ix=0;
  cout<<"×àñòü À"<<endl<<endl;
  while(mass1[ix]){
    character = mass1[ix];
    if ( isupper(character) || islower(character) || character==' '){
        cout<<mass1[ix];
      }
      ix++;
  }
  ix=0;
  cout<<" ";
 while(mass1[ix]){
    character = mass1[ix];
    if ( isdigit(character) || ispunct(character) || character==' '){
        cout<<mass1[ix];
      }
      ix++;
  } 
cout<<endl<<"×àñòü B"<<endl<<endl;
for (i=0;i<strlen(mass1);i++)
{
    if (mass1[i] == '4')
}
 
  cout<<endl<<"×àñòü C"<<endl<<endl;
  ix=0;
if (strcmp (mass2, mass1)==1){
      cout<<"Òåêñò À âõîäèò â òåêñò Á"<<endl<<endl;
  }
  else{
    cout<<"Òåêñò À íå âõîäèò â òåêñò Á"<<endl<<endl;
  }
return(0);
system("pause");
}
Вот, код на решение задачи А и задачи С, не хватает только В, помогите пожалуйста.
Пытался сделать через стрлок, но что-то пошло не так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
while (istr != NULL)
{
    cout<<"Îáðàáàòûâàåì äàííîå ñëîâî "<<istr<<endl;
for (int i=0;i<strlen(istr);++i)
{
    cout<<"Áóêâà "<<istr[i]<<endl;
if ('a' <= istr[i] && istr[i] <= 'z' || istr[i] == ' ')
{
    x=0;
}
else
{
    x=1;
    break;
}
}
cout<<"Íà ýòîì ñëîâå ôëàã ="<<x<<endl;
if (x == 0)
{
    delete istr;
}
istr = strtok (NULL,sep);
}
Добавлено через 2 часа 58 минут
C++
1
2
3
4
5
6
if (x == 0)
{
    delete istr;
}
istr = strtok (NULL,sep);
}
Судя по всему, при значении x=0, удаляется это слово и следующее слово не загружается в istr (из-за плохого знания работы функции strtok). Пожалуйста, помогите, очень срочно

Добавлено через 1 час 37 минут
Работающий вариант данной задачи:
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
#include <iostream>
#include <cstring>
#include <string.h>
#include <locale.h>
#define M 15
#include <stdio.h>
#include <Windows.h>
#include<iomanip>
#include<ctime>
#include <fstream>
using namespace std;
int main(){
    SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
char character, mass1[] ="ye2V23p...3 thi1s co2de 23 is very important for the execution of the program.\n";    
char mass2[]=" ye2V23p... this code is very important for the execution of the program. This is test programm\n";
char *mass3;
        cout<<"Введенный текст A"<<endl;
int ix = 0,x=0;
char sep[3]=" .";
int ij=0;
int probel;
  while (mass1[ix])                           
  {
    character = mass1[ix];   
    std::cout << character;
    ix++;                                   
  }
  cout<<endl;
  ix=0;
  cout<<endl<<"Введенный текст B"<<endl;
  while (mass2[ij])                           
  {
    character = mass2[ij];   
    std::cout << character;
    ij++;                                   
  }
  cout<<endl;
  ix=0;
  cout<<"Часть А"<<endl;
  cout<<"-----------------------------------------"<<endl;
  while(mass1[ix])
  {
    character = mass1[ix];
    if ( isupper(character) || islower(character) || character==' ')
      {
        cout<<mass1[ix];
      }
      ix++;
  }
  ix=0;
  cout<<" ";
 while(mass1[ix]){
    character = mass1[ix];
    if ( isdigit(character) || ispunct(character) || character==' ')
      {
        cout<<mass1[ix];
      }
      ix++;
  } 
cout<<endl<<"Часть B"<<endl;
cout<<"-----------------------------------------"<<endl;
char *istr;
istr = strtok (mass1, sep);
int i=0,l=0;
while (istr != NULL)
{
 
for (i=0;i<strlen(istr);++i)
{
if ('a' <= istr[i] && istr[i] <= 'z' || istr[i] == ' ' || istr[i] == '.' || istr[i] == ',')
{
    x=0;
}
else
{
    x=1;
    break;
}
}
 
if (x == 0)
{
    istr = "";
}
if (istr == "")
cout<<istr;
else
cout<<istr<<" ";
istr = strtok (NULL,sep);
}
 
  
  cout<<endl<<"Часть C"<<endl;
  cout<<"-----------------------------------------"<<endl;
  ix=0;
if (strcmp (mass2, mass1)==1){
      cout<<"Текст А входит в текст Б"<<endl<<endl;
  }
  else{
    cout<<"Текст А не входит в текст Б"<<endl<<endl;
  }
return(0);
system("pause");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.12.2017, 14:12

В строке, состоящей из алфавитно-цифровых символов, переместить все буквы в ее начало
Помогите написать листинг к заданию

Строки символов. (Переместить последнюю букву в начало слова)
Прошу помощи в решении задачи. Нужно написать код к данной задаче в Visual Studio (в консольной приложении). Вот и сама задача: В...

Переставить все входящие буквы «а» в начало слова, а буквы «я» – в конец
Привет! Нужно во всех словах строки S переставить все входящие буквы «а» в начало слова, а буквы «я» – в конец. Что-то не как не пойму...

Файловый ввод/вывод. Во всех словах строки переставить все входящие буквы «а» в начало слова, а буквы «я» – в конец
Здравствуйте! Помогите, пожалуйста, составить программу, которая считывает из текстового файла input.txt строку символов S.Во всех словах...

Слова предложения, содержащие две или более одинаковые буквы переместить в другое предложение
Здраствуйте. Помогите пожалуйста с написанием программы на С (не ++). &quot;Введите предложение. Слова предложения, содержащие две или...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru