C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
HELP !!!
anonumus
Отправлено: 05.12.2005, 20:37


Не зарегистрирован







Vvoditsja simvolnaja stroka i iz povtarajushihsja simvolov sozdaetsja drugoi massiv kotoryi i vyvoditsja na ekran.
kak by ento sdelat??
Guest
Отправлено: 05.12.2005, 21:16


Не зарегистрирован







Например, если имеем счастье к строке String str, тогда что-то типа:
CODE
bool bEx[255];
for(int i =0; i<256; i++)bEx[i] = false;
int n = str.Length();
String strDubl = "";
for(int i=1; i<=n; i++)
{
 int j = str[i];
 if(bEx[j])
   strDubl = strDubl + str[i];
 else
   bEx[j] = true;
}
if(strDubl.Length()>0)
 cout << strDubl << endl;
else
 cout << "Строка " << str << " не содержит дубл.символов" << endl;  
anonumus
Отправлено: 06.12.2005, 20:45


Не зарегистрирован







Thx.
Nu a esli bez ispolzovanija string ento mozno sdelat?
Guest
Отправлено: 07.12.2005, 00:53


Не зарегистрирован







Конечно.

Есть где-то напр.

char str[254];

и получает значение, скорей всего через ввод с клавиатуры. Потом
CODE
 bool bEx[255];
 char strDubl[254];
 char *chPtr = strDubl;
 for(int i=0; i<256; i++)bEx[i] = false;
 int n = strlen(str);
 for(i=0; i<n; i++)
 {
  int j = str[i];
  if(bEx[j])
  {
    *chPtr = j;
    chPtr++;
  }
  else
    bEx[j] = true;
 }
 *chPtr = 0;
 if(strlen(strDubl)>0)
  cout << strDubl << endl;
 else
  cout << "Строка " << str << " не содержит дубл.символов" << endl;  
}

anonumus
Отправлено: 08.12.2005, 18:28


Не зарегистрирован







Xm... voobshem da no esli vvodish naprimer takuju stroku "sssss" to vyvoditsja "ssss" a mozno li tak 4tob vyvodilos tolko odin simvol kotoryi povtarjalsja toest tak "sssss" i vyvodisja "s"????

esli mona to hotelos by takoi variant, zaranee blagodarju.
Guest
Отправлено: 08.12.2005, 21:40


Не зарегистрирован







CODE
int bEx[255];
char strDubl[254];
char *chPtr = strDubl;
for(int i=0; i<256; i++)bEx[i] = 0;
int n = strlen(str);
for(i=0; i<n; i++)
{
 int j = str[i];
 if(bEx[j]==1)
 {
   *chPtr = j;
   chPtr++;
 }
 bEx[j]++;
}
*chPtr = 0;
if(strlen(strDubl)>0)
 cout << strDubl << endl;
else
 cout << "Строка " << str << " не содержит дубл.символов" << endl;  
}
anonumus
Отправлено: 09.12.2005, 15:06


Не зарегистрирован







VSE POLU4ILOS.
BOLSHOE 4ELOVE4ESKOE SPASIBO!

Вернуться в Вопросы программирования в C++Builder