#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
char str[512] = "01110001 1110110 0000001110000 0100100101\0";
char x;
int i, group=0, a=0, ln=0, ones[2];
/*
ones[2]- первый элемент длинна группы из ln
второй колличество едениц из a
group - только 0 или 1 или 2
*/
cout << "enter digit:"<< endl;
cout << " 1 new string"<< endl;
cout << " 2 default string:"<< endl;
cout << " '"<< str <<"'"<< endl; // если лениво вводить строку
cout << " 0 exit"<< endl;
cin >> i;
cout << endl;
switch(i) {
case 1:
cout << "(Notice: only ' ', 1, 0 characters)"
<<endl<<"enter string:"<< endl;
cout.flush();
cin.getline(&x, 1); // лишний cin думаю баг devCpp
cin.getline(str,511);
break;
case 2:
break;
default:
i = 0;
}// end of switch
if (i) {
i=0;
for (i=0; (x = str[i]) != 0x00; i++) {
switch (x) {
case '1':
ln++;
a++;
group=2;
break;
case '0':
ln++;
group=2;
break;
default:
if (group>1 && (!ones[0] || ones[0]>ln)) {
ones[0] = ln;
ones[1] = a;
}
group = (group)? 1: 0;
ln = a = 0;
}// end of switch
}// end of while
if (group>1 && (!ones[0] || ones[0]>ln)) {
ones[0] = ln;
ones[1] = a;
} // последнее возможное нахождение
cout <<endl<<"result: "<< ones[1]<< endl;
cout <<"length group = "<< ones[0]<< endl;
cout <<"string = "<< str << endl;
}
// system("PAUSE");
cin.getline(&x, 1); // // лишний cin думаю баг devCpp
cin.getline(&x, 1); // типа getch();
return 0;
} |