Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2011, 17:16   #1
zhenya.ya
Форумчанин
 
Регистрация: 29.11.2009
Сообщений: 142
Сообщение Удаление из массива С++

Требуется удалить все повторяющиеся символы в строке.
Проблема: удаляются только превые с начала или с конца символы. (т.е. нужно, чтобы было: из строки "122kk3pp" получилось "12k3p".)
Код:
void main()
{
	char str[22];
	cin>>str;
	int i,m,n=strlen(str);

for(int i=0;i<n;i++)
if(str[i] == str[i+1]) m = i;

for( i= m; i<n-1;str[i]=str[i+1],i++);

for(int i=0;i<n-1;i++)
cout<<str[i];
n--;
system("pause");
}
zhenya.ya вне форума Ответить с цитированием
Старый 24.03.2011, 20:08   #2
Alt
Лжец и смутьян
Форумчанин
 
Аватар для Alt
 
Регистрация: 03.04.2009
Сообщений: 194
По умолчанию

Код:
int main()
{
char str1[32], str2[32];
cin >> str1;
int len = strlen(str1) + 1;
int j = 0;
str2[0]=str1[0];
char lastsymb = str1[0];
for (int i = 1; i < len; i++)
{
if (str1[i] != lastsymb)
{
str2[j++] = str[i];
lastsymb = str[i];
}
}
cout << str2;
system("PAUSE");
}
Код не проверял, но вроде все ок.
Помогли тебе - помоги другому.
Alt вне форума Ответить с цитированием
Старый 24.03.2011, 20:09   #3
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

хм... как-то так
Код:
for (i = 0; i < (strlen(s) - 1); i++)
{
    if (s[i] == s[i+1]) 
    {
         for (j = i; j < (strlen(s) - 1); j++)
              s[j] = s[j+1]
         s[strlen(s)-1] = '\0';
    }
}
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 24.03.2011, 20:38   #4
zhenya.ya
Форумчанин
 
Регистрация: 29.11.2009
Сообщений: 142
По умолчанию

огромное спасибо!
zhenya.ya вне форума Ответить с цитированием
Старый 24.03.2011, 22:48   #5
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

а если строка будет "12w2wrw" не будет ведь работать
onewho вне форума Ответить с цитированием
Старый 24.03.2011, 22:58   #6
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
а если строка будет "12w2wrw" не будет ведь работать
Строка таковой никогда не бывает!
Она будет такой "12w2wrw\0"
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 24.03.2011, 23:54   #7
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

эээ... и к чему это?
onewho вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление из массива Цветик Общие вопросы C/C++ 0 07.11.2010 20:34
Удаление из массива Цветик Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 14.10.2010 03:55
Удаление элемента из массива prostac Помощь студентам 2 30.09.2010 11:14
Удаление элемента из массива Ozerich PHP 10 14.02.2009 02:21