Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];

Вниз

PAS =>> CPP   Найти похожие ветки 

 
Qwertyqwert   (2005-12-06 13:00) [0]

Доброго времени суток!
Помогите перевести на С++ следующий код:

var s:string;
    i:integer;
begin
readln(s);
for i:=1 to length(s) do
begin
  if (s[i]="Н" and s[i+1]="О") and(i<>1) then
   begin
    Witeln("YES");
    Halt;
   end;
end;
Writeln("NO");
end.


 
Иксик ©   (2005-12-06 13:05) [1]


> Qwertyqwert   (06.12.05 13:00)  

Зачем такие сложности??? И может все-таки to length(s)-1?


 
Virgo_Style ©   (2005-12-06 13:08) [2]

а Pos не лучше ли использовать?


 
MBo ©   (2005-12-06 13:16) [3]

strstr


 
AgainIm   (2005-12-06 13:26) [4]

Просто есть некоторые проблемы в С++
Может кто расскажет тогда, как работать со строками? Знаю скажите ищи книги, но все же нужно срочно, подскажите кто знает. С уважением! За ранее спасибо


 
Virgo_Style ©   (2005-12-06 13:28) [5]

на какой C++ ? Если на Builder, то практически дословно можно...


 
AgainIm   (2005-12-06 13:37) [6]

Нет не билдер, обычный С++ под дОС (с синим экраном :) )


 
Desdechado ©   (2005-12-06 14:08) [7]

а тебя не смущает, что этот код не работает?
for i:= 1 to length(s) do
 if (s[i+1]="О")...

на классическом Си это будет примерно так
char s[256];

for(i=0;i<strlen(s)-1;i++)
if( i!=1 && s[i]=="H" && s[i+1]=="O" )
{ printf( "YES\n" ); return(1); }
printf("NO");


 
Desdechado ©   (2005-12-06 14:11) [8]

соврал,
if( i!=0 && ...


 
AgainIm   (2005-12-06 14:44) [9]


var s:string;
   i:integer;
begin
readln(s);
for i:=1 to length(s)-1 do
begin
 if (s[i]="Н" and s[i+1]="О") and(i<>1) then
  begin
   Witeln("YES");
   Halt;
  end;
 if (s[i]="О" and s[i+1]="Н") and(i<>1) then
  begin
   Witeln("YES");
   Halt;
  end;
end;
Writeln("NO");
end.

Извеняюсь, писал на скорую руку :(
На С будет такой код? И еще вопрос: как реализовать ввод (readln Паскалевский)
#include <conio.h>
void main()
{
char s[256];
clrscr();
 //////////А как теперь считать строку? Так ине понял

for(i=0;i<strlen(s)-1;i++)
{
if( i!=0 && s[i]=="H" && s[i+1]=="O" )
 { printf( "YES\n" ); return(1); }
if( i!=0 && s[i]=="О" && s[i+1]=="Н" )
 { printf( "YES\n" ); return(1); }
}
printf("NO");
}



 
Igorek ©   (2005-12-06 15:29) [10]


> И еще вопрос: как реализовать ввод (readln Паскалевский)

scanf


 
Desdechado ©   (2005-12-06 15:30) [11]

> А как теперь считать строку?
А это домашнее задание. Не все же в клювик получать :)

кстати:
1. int main()
2. содержимое цикла поддается оптимизации (подсказка - левая граница i)


 
Desdechado ©   (2005-12-06 15:33) [12]

3. if можно писать один раз (отORить условия 1 и 2)
4. правую границу цикла стоит вычислить заранее, чтоб на каждой итераци не крутить
5. i надо описать


 
STL   (2005-12-06 16:35) [13]

код на C++ с использованием STL

#include <iostream>
#include <string>
#include <conio>

int main(int argc, char* argv[])
{
 char* const yes = "YES";
 char* const no = "NO";
 //искомая последовательность символов
 char* const find_it = "HO";
 using namespace std;
 string input_string;
 cout << "Input any string:\n";
 cin >> input_string;
 if(input_string.find(find_it) + 1)
   cout << yes;
 else
   cout << no;
 cout << "\nPress any key to exit.";
 //дождаться реакции пользователя
 getch();
 return 0;
}


 
AgainIm   (2005-12-09 01:37) [14]

А что такое STL?


 
Fl@sh ©   (2005-12-09 03:42) [15]


> AgainIm   (09.12.05 01:37) [14]
>
> А что такое STL?


http://www.google.com.ua/search?q=%D1%87%D1%82%D0%BE+%D1%82%D0%B0%D0%BA%D0%BE%D0%B5+stl&sourceid=mozilla-search&start=0& start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:ru-RU:official



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.011 c
2-1134555646
JTAG
2005-12-14 13:20
2006.01.01
Знатоки подскажите плз по вопросу такого характера


2-1134473133
vitaliy14
2005-12-13 14:25
2006.01.01
Сжатие картинки


3-1131542234
RDA
2005-11-09 16:17
2006.01.01
Firebird - Защиты нет?


2-1134727375
yk
2005-12-16 13:02
2006.01.01
Как определить выходные дни


1-1133511856
Шурик_
2005-12-02 11:24
2006.01.01
Обработка Cancel





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский