Перевод Из Паскаль В С++

aisylu

New Member
14.01.2013
1
0
#1
Строка содержит произвольный русский текст. Проверить,каких в двухбуквенных сочетаний в нем больше:согл+глас,согл+согл,гласн+гласн.
вот программа на паскале
var
s,s1,s2:string[255];
k,t:Char;
x,z ,i:Integer;
soglglas,glasglas,soglsogl:Integer;
begin
readln(s);
writeln(s,' ',length(s));
s1:='уеыаоэяиюёЁУЕАОЭЯИ';
s2:='йцкнгшщзхфвпрлджчсмтбЙЦКНГШЩХЗФВПРЛДЖЧСМТБ';
x:=1;

if s='' then write('нет текста' )
else
begin t:='0' ;
while x<= length(s) do begin


for i:=1 to Length (s1) do
if s[x]=s1 then
begin
k:='g' ;z:=1;end;

for i:=1 to length(s2)do
if s[x]=s2 then begin
k:='s' ; z:=1; end;
if z<>1 then k:='0' ;


if ((t+k)='gs') or ((t+k)='sg') then soglglas:=soglglas+1 ;
if (t+k)='gg' then glasglas:=glasglas+1 ;
if (t+k)='ss' then soglsogl:=soglsogl+1 ;


t:=k;
x:=x+1;
Z:=0;
end;
end;
Writeln(soglglas,' ',glasglas,' ',soglsogl);
readln;
end.


пытаюсь перевести в с++...вопросы возникли..и вообще кто бы мог помочь? например сами видите с Length проблемы у меня...

#include <iostream>
#include <string>
#include <locale>
using namespace std;

int main(int argc, char* argv[])
{
setlocale( LC_ALL,"Russian" );
string s,s1,s2;
char k,t;
int x,z,i;
int soglglas,glasglas,soglsogl;
int length;
{
int get ();
}
cout<<"s"<<' '<<length(s);
s1="уеыаоэяиюёЁУЕАОЭЯИ";
s2="йцкнгшщзхфвпрлджчсмтбЙЦКНГШЩХЗФВПРЛДЖЧСМТБ";
x=1;
if (s=' ')
cout<<"нет текста";
else
{ t='0' ;
while (x<= length(s)) do {
for (i=1;i< length(s1);i++)
if (s[x]==s1) {
k='g' ;
z=1;
}

for (i=1;i<length(s2);i++)
if (s[x]=s2)
{k='s' ;
z=1;
}
if (z!=1)
k='0' ;
if (((t+k)=='gs')||((t+k)=='sg'))
soglglas++;
if ((t+k)=='gg')
glasglas++;
if ((t+k)=='ss')
soglsogl++;
t=k;
x++;
z=0;
}
cout<<soglglas<<' '<<glasglas<<' '<<soglsogl;
cin.get();
return 0;
}