Работа Со Строками

  • Автор темы Burshf
  • Дата начала
B

Burshf

Гость
#1
Здравствуйте,помогите с задачкой для C++ 6.0.Задание такое:
Дана строка,состоящая из групп нулей и едениц(не разделенных ничем).Вывести на экран группы с четным количеством символов.

Я попробовал сделать так,но не уверен в правильности,можно ли это как либо исправить,либо решить задание по другому?
C++:
#include <iostream.h>
#include <string.h>
#include <conio.h>
#include <stdio.h>
int main ()
{
char str[100];
char *pr;
int i,l,k;
char s[100];
puts("Vvedite stroku iz 0 i 1:");
gets(str);
cout<<"Ishodnaya stroka: "<<str<<endl;
cout<<"Right groups: "<<endl;
l=strlen(str);
pr=str[0];
for (i=0;i<=l;i++)
{
if (str[i]=str[i+1])
{

pr = strcat (pr,str[i+1]);
}

if (str[i]!=str[i+1])
{
if (strlen(pr) %2==0) cout<<pr<<endl;
pr=str[i+1];
}
}
getch();
return 0;
}
 
R

rrrFer

Гость
#2
Код:
int count = 1, i = 0;
while (s[i]) {
while (s[i] == s[i+1]) ++i, ++count;
if (0 == count&1)
for (int j = 0; j < count; ++j) std::cout << s[i];
count = 1;
++i;
}
не проверял, но суть при желании понять можно.

Добавлено: в твой код тоже не особо всматривался, но переменных там подозрительно много.
 
B

Burshf

Гость
#3
Блин не понимаю немного хода цикла, более того он не работает(
C++:
if (0 == count&1)
это что значит?откуда сдесь ссылка взялась?
И где проверка на четность?
Понял чего вы хотели добится,исправил на
C++:
if( count%2==0)
,теперь все работает.
Спасибо за помощь)