• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

переведите пожалуйсто с С++ в Delphi

  • Автор темы 5564485210215468
  • Дата начала
5

5564485210215468

#include <iostream> #include <cstdio> using namespace std; void change(char *str, int &count); bool symbol(char *str, char ch); int main() { setlocale(LC_ALL, "RUSSIAN"); char str[100] = "#rkt:# afet:rk: faktrlaa:etqg"; //набор символов. int count = 0; //счётчик элементов. cout << str << endl; change(str, count); cout << str << ' ' << '\n' << "Количество замен: " << count << endl; return 0; } void change(char *str, int &count) { do { while (*str++) { if (*str == ':') { char temp = *str; *str = *(str + 1); *(str + 1) = temp; } } } while (*str); }
 

Сергей Попов

Кодебай
30.12.2015
4 718
6 707
BIT
368
htdrty5e545.png
 

OBLIVIONNN

Green Team
22.08.2017
144
92
BIT
1
и что это значит ?
В смысле что это значит ?
Если что нибудь просишь , делай так что бы другим было понятно, код должен выглядеть как код, а не бог знает что.
Вот пример

#include <iostream>
#include <cstdio>
using namespace std;

void change(char *str, int &count);
bool symbol(char *str, char ch);

int main() {
setlocale(LC_ALL, "RUSSIAN");
char str[100] = "#rkt:# afet:rk: faktrlaa:etqg"; //набор символов.
int count = 0; //счётчик элементов.
cout << str << endl;
change(str, count);
cout << str << ' ' << '\n' << "Количество замен: " << count << endl;
return 0;
}

void change(char *str, int &count)
{
do{
while (*str++)
{
if (*str == ':')
{
char temp = *str;
*str = *(str + 1);
*(str + 1) = temp;
}
}
}
while (*str);
}
 
Последнее редактирование:

id2746

Green Team
12.11.2016
435
644
BIT
21
И заключен в тэг
Код:
#include <iostream>
#include <cstdio>
using namespace std;

void change(char *str, int &count);
bool symbol(char *str, char ch);

int main() {
setlocale(LC_ALL, "RUSSIAN");
char str[100] = "#rkt:# afet:rk: faktrlaa:etqg"; //набор символов.
int count = 0; //счётчик элементов.
cout << str << endl;
change(str, count);
cout << str << ' ' << '\n' << "Количество замен: " << count << endl;
return 0;
}

void change(char *str, int &count)
{
do{
while (*str++)
{
if (*str == ':')
{
char temp = *str;
*str = *(str + 1);
*(str + 1) = temp;
}
}
}
while (*str);
}
 

sinner67

Green Team
24.03.2017
279
357
BIT
0
Я бы сделал так:
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils, Windows;


procedure Change(var str: String; var count: Integer);
var
  temp: char;
  i: integer;
begin
  for i:=1 to Length(str) do
    if (str[i] = ':') then
      if (i + 1 < Length(str) + 1) then
        begin
          temp := str[i];
          str[i] := str[i + 1];
          str[i + 1] := temp;
        end
      else str[i] := ' ';
end;

var
  str: String = ('#rkt:# afet:rk: faktrlaa:etqg');
  count, i: integer;
begin
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  count := 0;
  writeln(str);
  Change(str, count);
  writeln(str);
  Writeln('Количество замен: ', count);
  readln;
end.

только не пойму зачем в функцию передавать параметр count если он не используется. И какая то странная функция, которая просто удаляет со смещением элемент из массива, причем только при первом его вхождении. Или я неверно разобрался.
 
  • Нравится
Реакции: Сергей Попов
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!