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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2011, 21:47   #1
Defender42
Пользователь
 
Регистрация: 27.12.2008
Сообщений: 89
По умолчанию Из паскаля в С++

Дана строка. Найти в ней те слова, которые начинаются и оканчиваются одной и той же буквой.

Код:
program string_12;

var sl,s:string; i:integer;

begin write('введите строку:'); readln(s);

sl:='';i:=1;s:=s+'.';

repeat

{for i:=1 to length(s) do}

if (s[i]=' ') or (s[i]=',') or (s[i]=';') or (s[i]='.') or (s[i]='!') or (s[i]='?')

then begin if sl[1]=sl[length(sl)] then writeln(sl);

sl:='';

end

else sl:=sl+s[i];

i:=i+1

until i>length(s);

readln;

end.
Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
 clrscr();
 char s[80],sl[80];
 int i;
 gets(s);
  i=1;
  s=s+'.';
  {     do
    for (i=1;i<strlen(s)-1;i++)
      if (s[i]==' ')||(s[i]==',')||(s[i]==';')||(s[i]=='.')||(s[i]=='!')||(s[i]=='?')
      if (sl[1]=sl[strlen(sl)])
      puts(sl);
       sl=' ';
  }
    else sl=sl+s[i];
     i=i+1    }
 while (i>strlen(s))

 getch();
}

Вот что у меня получилось........Где я ошибся?

Последний раз редактировалось Defender42; 05.04.2011 в 04:38.
Defender42 вне форума Ответить с цитированием
Старый 04.04.2011, 22:33   #2
Акоб
Форумчанин
 
Регистрация: 10.01.2011
Сообщений: 243
По умолчанию

Ошибок у вас уйма.
Код:
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <windows.h>
int main()
{
 system("clr");
 char s[80],sl[80];
 int i, length;
 cin>>s;
  i = 1;
  strcpy(s, ".");
  length = strlen(s) - 1;
  {     
    for (i = 1 ;i < length ;i++)
      if ((s[i] == ' ')||(s[i] == ',')||(s[i] == ';')||(s[i] == '.')||(s[i] == '!')||(s[i] == '?'))
      if (sl[1] = sl[strlen(sl)])
	  {
		cout<<sl;
		strcpy(s, ".");
	  }
	    else
		{
			strcpy(s, ".");
			i=i+1;
		}
		length = strlen(s) - 1;
  }

 getch();
 return 0;
}
Акоб вне форума Ответить с цитированием
Старый 05.04.2011, 04:33   #3
Defender42
Пользователь
 
Регистрация: 27.12.2008
Сообщений: 89
По умолчанию

что означает system("clr");
Ответ не выводит.

Последний раз редактировалось Defender42; 05.04.2011 в 04:38.
Defender42 вне форума Ответить с цитированием
Старый 05.04.2011, 05:50   #4
crusaderx2
Пользователь
 
Регистрация: 04.05.2010
Сообщений: 10
По умолчанию

Код:
if (sl[1] = sl[strlen(sl)])

Последний раз редактировалось crusaderx2; 05.04.2011 в 05:58.
crusaderx2 вне форума Ответить с цитированием
Старый 05.04.2011, 07:14   #5
Defender42
Пользователь
 
Регистрация: 27.12.2008
Сообщений: 89
По умолчанию

Цитата:
Сообщение от crusaderx2 Посмотреть сообщение
Код:
if (sl[1] = sl[strlen(sl)])
к чему это? в условие если сравниваешь пишется "=="
Defender42 вне форума Ответить с цитированием
Старый 05.04.2011, 08:40   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Defender42
к чему это? в условие если сравниваешь пишется "=="
Угу.
А это к тому, что у Вас написано именно с ошибкой!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.04.2011, 12:55   #7
Акоб
Форумчанин
 
Регистрация: 10.01.2011
Сообщений: 243
По умолчанию

Цитата:
Сообщение от Defender42 Посмотреть сообщение
что означает system("clr");
Ответ не выводит.
Дело в том, что в C++ при cin>>st; (read(st); ) после первого пробела он не принемает символы.Если вы скажете задачу мне будет легче вам помочь.
Цитата:
Угу.
А это к тому, что у Вас написано именно с ошибкой!
Это я прпустил.
Акоб вне форума Ответить с цитированием
Старый 05.04.2011, 13:32   #8
Defender42
Пользователь
 
Регистрация: 27.12.2008
Сообщений: 89
По умолчанию

Дана строка. Найти в ней те слова, которые начинаются и оканчиваются
одной и той же буквой
Defender42 вне форума Ответить с цитированием
Старый 05.04.2011, 16:34   #9
ololo-schoolboy
Форумчанин
 
Регистрация: 25.12.2010
Сообщений: 247
По умолчанию

В подробности кода не вдавался, но что-то похожее писал, возможно поможет:
Код:
#include<iostream>

using namespace std;

void pars_string(const char *str)
{
	int start_word=0;
	int i=0;
	do
	{
		if(str[i]==' ' || str[i]=='\t' ||str[i]=='\0')
		{
			if(str[start_word]==str[i-1])
			{
				for(int j=start_word;j<i;++j)
					cout.put(str[j]);
				cout<<endl;
			}
			while(str[i]==' ' && str[i]=='\t' && ++i);
			start_word=i;
		}
	}while(str[i++]);
}


int main()
{
parse_string("!hello! !world!");
cin.get();
return 0;
}
ololo-schoolboy вне форума Ответить с цитированием
Старый 05.04.2011, 16:37   #10
Акоб
Форумчанин
 
Регистрация: 10.01.2011
Сообщений: 243
По умолчанию

И что Defender42, вы хотите сказать что ваша программа на паскале работает?

Последний раз редактировалось Акоб; 05.04.2011 в 16:39.
Акоб вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
портирование с паскаля на С++ Jenkins Помощь студентам 1 29.12.2010 21:34
С Паскаля на Си++ Svetlanka_ya Помощь студентам 0 16.05.2010 12:17
С паскаля на c++ Sparky Помощь студентам 1 09.03.2010 16:56
от паскаля к с++ WOLFak Обсуждение статей 11 27.01.2010 00:18
из Паскаля в С++ Lees27 Общие вопросы C/C++ 1 14.09.2009 23:29