Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 53

Как переделать?

29.10.2015, 17:19. Показов 1090. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#include "stdafx.h"
#include "iostream"
#include "cstring"
 
using namespace std;
char a[100];
bool used[257];
int _tmain(int argc, _TCHAR* argv[])
{
  cout << "The original text - ";
  scanf("%s",a); 
    for (int i = 0;i < strlen(a);) {
      if (used[a[i]])
        a.strcpy(i, i + 1);
      else
     {
        used[a[i]] = 1;
        ++i;
     }
 }
  cout << "The reversed text - ";
  printf("%s",a);
  system("pause");
  return 0;
}
нужно как-то сделать strcpy чтобы заработал
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.10.2015, 17:19
Ответы с готовыми решениями:

как переделать массив что бы не было его остановки и как добавить индекс
Такая вот задача найти индекс максимального элемента массива , вот мой код что тут не так и что следует добавить ? и почему у меня индекс...

Как переделать на C++?
program Matrix31; var STR,STL,j,i,M,N:integer; a: array of real; CRed:real; begin // Ввод данных writeln('Введите числа M...

Как из do while переделать в for
я уже настолько &quot;заучилась&quot;, что элементарные вещи сделать не могу. подскажите, пожалуйста ) как из do while переделать в for do ...

9
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
29.10.2015, 17:24
А остальное-то работает? Где инициализация used?
В чём суть задачи?
0
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 53
29.10.2015, 17:27  [ТС]
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
#include "stdafx.h"
#include "iostream"
#include "string"
 
using namespace std;
string a;
bool used[257];
int _tmain(int argc, _TCHAR* argv[])
{
    cout << "The original text - ";
    cin>>a; 
   for (int i = 0;i < a.size();) {
    if (used[a[i]])
        a.erase(i, i + 1);
    else
    {
        used[a[i]] = 1;
        ++i;
    }
}
    cout << "The reversed text - ";
    cout << a <<endl;
    system("pause");
}
вот такой была, и работала, а надо убрать string и сделать, чтобы работало с Char
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
29.10.2015, 17:49
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
#include "stdafx.h"
#include "iostream"
#include <cstring>
#include <algorithm>
 
using namespace std;
char a[1000];
bool used[256];
int _tmain(int argc, _TCHAR* argv[])
{
   fill(used, used + 256, false);
 
    cout << "The original text - ";
    cin>>a; 
   for (int i = 0;i < a.size();)
   {
    if (used[a[i]])
        memmove(a + i, a + 2 * i + 1, strlen(a + 2 * i));
    else
    {
        used[a[i]] = true;
        ++i;
    }
}
    cout << "The reversed text - ";
    cout << a <<endl;
    system("pause");
}
0
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 53
29.10.2015, 17:57  [ТС]
Проблема в том, что сказали сделать через scanf и printf и не использовать size и erase
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
29.10.2015, 17:58
Я не пойму, что делает твоя программа, но если переводить как есть, то будет это (выше).
0
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 53
29.10.2015, 18:09  [ТС]
или сделать со смещением, выкинув повторяющийся элементы
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
29.10.2015, 18:35
Лучший ответ Сообщение было отмечено Vozmcfrncing как решение

Решение

Вот удаление повторяющихся символов.
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
#include "stdafx.h"
#include "iostream"
#include <cstring>
#include <algorithm>
 
using namespace std;
char a[1000];
bool used[256];
int _tmain(int argc, _TCHAR* argv[])
{
   fill(used, used + 256, false);
 
    cout << "The original text - ";
    cin>>a; 
   for (int i = 0; a[i] != '\0';)
   {
    if (used[a[i]])
        memmove(a + i, a + i + 1, strlen(a + i));
    else
        used[a[i++]] = true;
}
    cout << "The reversed text - ";
    cout << a <<endl;
    system("pause");
}
1
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 53
29.10.2015, 19:29  [ТС]
C++
1
2
3
4
5
6
 for (int i = 0; a[i] != '\0';)
   {
    if (used[a[i]])
        memmove(a + i, a + i + 1, strlen(a + i));
    else
        used[a[i++]] = true;
а пояснить что к чему подробнее можете?

Добавлено через 14 минут
C++
1
fill(used, used + 256, false);
и значение этой строки плохо понимаю
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
29.10.2015, 19:33
Что тут объяснять? memmove() копирует часть массива со сдвигом на 1 символ к началу. fill() необходима, чтобы used был заполнен false перед поиском.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.10.2015, 19:33
Помогаю со студенческими работами здесь

Как переделать программу
была программа #include &lt;iostream&gt; using namespace std; class STROKA { char *str; int n; public: STROKA(char...

Как правильно переделать в c++ ?
pascal код uses crt; var x,a,b,c,e,d,h:real; i,j:longint; q:char; function f(x,d:real):real; begin f:=d*ln(x)-1/x;

Как переделать код с# в с++
var str_ = new StreamReader(@&quot;C:\2.txt&quot;); string taan; int k = 0; string split = str_.ReadToEnd().Split(new { &quot;!&quot;, &quot;.&quot;, &quot;,&quot;, &quot;?&quot;, &quot; &quot;...

как переделать на с++? с паскаля
function aaa(x: integer):boolean; var b: integer; begin b:=1; While (x-b*2)&gt;0 do b:=b*2; x:=x-b; if x&lt;&gt;1...

как переделать программу?
компилятор выдает много ошибок, как исправить ума не приложу. может быть что то нужно переделать? подскажите #include &lt;stdlib.h&gt;...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru