Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.61/72: Рейтинг темы: голосов - 72, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 28
1

Вывести на экран те символы, которые встречаются в строке только один раз

20.02.2012, 15:45. Показов 14159. Ответов 12
Метки нет (Все метки)

Для заданной символьной строки вывести на экран те символы, которые встречаются в ней только один раз, в том порядке, в котором они встречаются в тексте.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2012, 15:45
Ответы с готовыми решениями:

Вывести только те символы, которые встречаются в тексте только один раз
Из заданного текста предложения выберите и выведите на экран только те символы, которые встречаются...

Вывести все символы, которые встречаются в строке только один раз, в порядке возрастания их ASCII-кодов.
Напишите программу, которая находит все символы в символьной строке, которые встречаются только...

Для заданной символьной строки вывести на экран те символы, которые встречаются в ней только один раз
Для заданной символьной строки вывести на экран те символы, которые встречаются в ней только один...

Оставить в строке только те символы, которые встречаются один раз
Где ошибка??? #include "stdafx.h" #include <iostream> #include <string.h> using namespace...

12
Модератор
63381 / 47074 / 32446
Регистрация: 18.05.2008
Сообщений: 114,106
20.02.2012, 16:02 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Можно так.
Pascal
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
uses crt;
var s,s1:string;
    c:char;
    i,j,k:byte;
begin
writeln('Введите строку');
read(s);
s1:=s;{сделаем копию строки, если строка не нужна, то можно и не делать}
i:=1;
while i<length(s1) do
 begin
  c:=s1[i];{запомним символ}
  k:=0;
  for j:=length(s1) downto i+1 do{с конца строки ищем такие же}
  if s1[j]=c then{если есть}
   begin
    k:=1;{фиксируем}
    delete(s1,j,1);{удаляем}
   end;
  if k=1 then delete(s1,i,1){если не один, удаляем}
  else i:=i+1;{иначе проверяем следующий}
 end;
writeln('Символы по 1 разу');
if s1='' then write('Таких символов нет')
else write(s1);
end.
1
яковлева
26.02.2012, 23:21 3
Выбрать из каждой символьной строки исходного массива только те символы которые встречаются в ней более одного раза, и сформировать результирующую строку из этих символов.
Модератор
63381 / 47074 / 32446
Регистрация: 18.05.2008
Сообщений: 114,106
27.02.2012, 07:26 4
Цитата Сообщение от яковлева Посмотреть сообщение
только те символы которые встречаются в ней более одного раза,
В новой строке они будут по 1 разу или все сколько есть, например из строки мама так и будет мама или только ма?
0
яковлева
27.02.2012, 16:42 5
по 1 разу
например первые три строки массива:
abcabc
123
cacrkg
результат:
abcc
Модератор
63381 / 47074 / 32446
Регистрация: 18.05.2008
Сообщений: 114,106
27.02.2012, 17:02 6
Цитата Сообщение от яковлева Посмотреть сообщение
например первые три строки массива:
Какого массива? В условии вроде 1 строка....

Добавлено через 7 минут
Лезете в чужие темы, только мозг вывихиваете.

Добавлено через 9 минут
Pascal
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
uses crt;
var s:array[1..20] of string;
    n,i,j,p,k:byte;
    c:char;
begin
write('Количество строк n=');
read(n);
writeln('Введите ',n,' строк:');
for i:=1 to n do
read(s[i]);
writeln;
writeln('Символы, которые входят в строки более 1 раза:');
for i:=1 to n do
 begin
  while length(s[i])>0 do
   begin
    c:=s[i][1];
    k:=0;
    for p:=length(s[i]) downto 1 do
    if s[i][p]=c then
     begin
      k:=k+1;
      delete(s[i],p,1);
     end;
   if k>1 then write(c);
  end;
 end;
end.
1
0 / 0 / 2
Регистрация: 10.01.2011
Сообщений: 63
06.03.2012, 22:14 7
а в делфи можете перевести??? спасибо заранее
0
Mobile Software Engineer
Эксперт С++
5359 / 1578 / 956
Регистрация: 23.01.2011
Сообщений: 3,212
06.03.2012, 22:23 8
Цитата Сообщение от Monah_45rus Посмотреть сообщение
а в делфи можете перевести
заходите в Delphi --> New --> Console Application
Delphi
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
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
var s:array[1..20] of string;
    n,i,j,p,k:byte;
    c:char;
begin
write('Количество строк n=');
read(n);
writeln('Введите ',n,' строк:');
for i:=1 to n do
read(s[i]);
writeln;
writeln('Символы, которые входят в строки более 1 раза:');
for i:=1 to n do
 begin
  while length(s[i])>0 do
   begin
    c:=s[i][1];
    k:=0;
    for p:=length(s[i]) downto 1 do
    if s[i][p]=c then
     begin
      k:=k+1;
      delete(s[i],p,1);
     end;
   if k>1 then write(c);
  end;
 end;
end.
копипастите и ничего переделывать не нужно
1
0 / 0 / 2
Регистрация: 10.01.2011
Сообщений: 63
07.03.2012, 04:48 9
спасибо но мне другую нужно в делфи перевести) предыдущую))
0
Pascal +
133 / 132 / 127
Регистрация: 16.03.2011
Сообщений: 461
22.04.2012, 22:21 10
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от golevkolya Посмотреть сообщение
Дан файл, содержащий текст на русском языке. Выбрать из него только те символы, которые встречаются в нем только один раз, в том порядке, в котором они встречаются в тексте
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
program p;
var f:text;
    s:string;
    i,j,k:integer;
    m:set of char;
begin write('***************************************************');
      assign(f,'e:\F11.txt');
      reset(f);
      m:=['*'..'п'];
      writeln('символы:');
      while not(eof(f)) do
        begin readln(f,s);
              for i:=1 to length(s) do
                begin k:=0;
                      for j:=1 to length(s) do
                              if (s[i] in m)and(s[j] in m)and(s[i]=s[j])
                                 then k:=k+1;
                    if k=1  then write(s[i],' ');
                end;
          end;
    close(f);
end.
1
0 / 0 / 0
Регистрация: 07.05.2020
Сообщений: 12
07.05.2020, 21:08 11
Можно пожалуйста на С#
0
Модератор
63381 / 47074 / 32446
Регистрация: 18.05.2008
Сообщений: 114,106
07.05.2020, 21:13 12
Это в разделе
https://www.cyberforum.ru/csharp-beginners/
0
0 / 0 / 0
Регистрация: 30.11.2019
Сообщений: 11
12.06.2020, 18:15 13
Можно так:
Pascal
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
program symb_finder;
var 
 f:text;
 input,str1:string;
 set2:set of char;
 i:integer;
begin
assign(f,'input.txt');
reset(f);
str1:='';
set2 := [];
while not(eof(f)) do
 begin
  readln(f,input);
  for i := 1 to length(input) do
   if not(input[i] in set2) then
    begin
     str1 := str1 + input[i];
     set2 := set2 + [input[i]];
    end else
     delete(str1,pos(input[i],str1),1);
  end;
close(f);
writeln('Символы, которые встречаются в тексте один раз (в том порядке, в котором встречены в тексте): ', str1);
readln;
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.06.2020, 18:15

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Выбрать символы, которые встречаются в строке только один раз
Из заданой символьной строки (Набирается с клавиатуры) выбрать, те символы, которые встречаются в...

Вывести на экран те символы, что встречаются в тексте только один раз
Создать символьный массив. Из данного текста вывести на экран те символы, что встречаются в нем...

Вывести на экран все слова, которые встречаются в последовательности только один раз
У тексті поміж словами розташована кома, за останнім словом - крапка. Вивести на екран усі слова,...

Дана символьная строка. Вывести на экран те символы которые встречаются в строке более 3х раз
Работа со строками. Дана символьная строка. Вывести на экран те символы которые встречаются в...


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

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

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