Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

C programma

9.1K
24 мая 2005 года
Katyafiona
16 / / 24.05.2005
Hi!

Kto pomozhet napisat primer programmki C, kotoraja ischet v predlozhenii(schittannom s klaviaturi) slovo(tozhe schitannoe s klaviaturi. Pozhalujsta bez sistemnih funktsij, i esli mozhno bez 'for'

Prepod dal uzhe primer reshenija, no ono ne rabotaet, vidno iz za kakoj-to melochi, a ja eshche chajnik v C tak chto sama ne razberus.

Spasibo
Katya



#include <stdio.h>
#include <stdlib.h>
#define SIZE 100
// Funktionen
//1:
int suche_erst_buch(char *line,int offset,char buch)
{
int i = offset;
while ( line!=buch && line)
{
i++;
}
return i;
}

//2:
int suche_ab_pos(char *line,int pos,char *wort)
{
int i = pos;
int j = 0;
while ( (line==wort[j]) && wort[j] && line ) // wichtig line
{
i++;
j++;
}
if (wort[j]==0)
{
return 1;
}
else
{
return 0;
}
}

/* Hauptprogramm */

main()
{
int pos;
int gefunden;
char *line;
char buch;
char *wort;
int offset;
do
{
pos=suche_erst_buch(line,offset,buch);
gefunden=suche_ab_pos(line,pos,wort);
if(gefunden)
{
printf("ja\n");
}
else
{
offset=offset+pos+1;
}

}
while (!gefunden && offset>strlen(line));

}
488
24 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define SIZE 100
// Функции
//1: поиск символа нач. с заданной позиции
int suche_erst_buch(char *line,int offset,char buch)
{
  int i = offset;
  while(line[ i]!= buch && line[ i])i++;
  return i;
}

//2: поиск слова
int suche_ab_pos(char *line,int pos,char *wort)
{
  int i = pos;
  int j = 0;
  while ((line[ i]==wort[j]) && wort[j])
  {
    i++;
    j++;
  }
  if (wort[j]==0)
    return 1;
  else
    return 0;
}

/* Главная программа */

main()
{
  int pos;
  int gefunden;
  char line[128];
  char buch;
  char wort[32];
  int offset = 0;
 
  printf("Введите предложение: ");
  gets(line);
  strupr(line);
  printf("\nВведите слово: ");
  gets(wort);
  strupr(wort);
  buch = wort[0];
  bool bExist = false;
  do
  {
    pos=suche_erst_buch(line,offset,buch);
    gefunden=suche_ab_pos(line,pos,wort);
   if(gefunden)
   {
     printf("\nСлово находится в %d позиции", pos);
     bExist = true;
   }
   offset = pos+1;
  }
  while(offset<strlen(line));
  if(!bExist)
  {
    printf("\nПредложение не содержит искомое слово");
  }
  printf("\n\nНажмите на любую клавишу...");
  getch();
}

Цитата:
Originally posted by Katyafiona
Prepod dal uzhe primer reshenija, no ono ne rabotaet, vidno iz za kakoj-to melochi, a ja eshche chajnik v C tak chto sama ne razberus.

А ты не расстраивайся, твой препод, тоже чайник :) (В программе было 3 ошибки)

Возможно нужно будет подключить какие-то библиотеки. Я писал на Visual C, а эта прога вроде 16-bit Dos.

9.1K
24 мая 2005 года
Katyafiona
16 / / 24.05.2005
Spasibo ogromnoe, u menya ne rabotaet biblioteka
<conio.h>. Poka poprobuju razobratsja i zamenit ee funktsii na analogichnie iz drugih. Kak podkljuchit druguju biblioteku, ja ne znaju. A prepod prosto na hodu che-to sochinjal, poetomu i oshibki.
488
24 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by Katyafiona
Spasibo ogromnoe, u menya ne rabotaet biblioteka
<conio.h>. Poka poprobuju razobratsja i zamenit ee funktsii na analogichnie iz drugih. Kak podkljuchit druguju biblioteku, ja ne znaju. A prepod prosto na hodu che-to sochinjal, poetomu i oshibki.

conio подключено из-за команды getch(). Она нужна, чтоб не закрывалось DOS окно, пока пользователь не нажмет на какую-то клавишу. Но если прога запускается из среды DOS или Unix, тогда последние 2 команды можно опустить.

Подключение системной библиотеки:
#include <имя_библиотеки.h>

9.1K
24 мая 2005 года
Katyafiona
16 / / 24.05.2005
getch() zamenila na getchar(), no vse ravno soobshchaet oshibku:


In function `main':
: undefined reference to `strupr'



Цитата:
Originally posted by Mоngооsе
conio подключено из-за команды getch(). Она нужна, чтоб не закрывалось DOS окно, пока пользователь не нажмет на какую-то клавишу. Но если прога запускается из среды DOS или Unix, тогда последние 2 команды можно опустить.

Подключение системной библиотеки:
#include <имя_библиотеки.h>

488
24 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by Katyafiona
getch() zamenila na getchar(), no vse ravno soobshchaet oshibku:
In function `main':
: undefined reference to `strupr'


strupr, переводит предложение и слово в заглавные буквы.
Можно эти две команды тоже удалить.
Или же в help-е найти описание strupr и посмотреть в какомй библиотеке они прописаны.
Или заменить эту ф-ию эквивалентным.

9.1K
24 мая 2005 года
Katyafiona
16 / / 24.05.2005
Spasibo ogromnoe:) Teper est shans spravitsja s domashnim zadaniem
488
24 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by Katyafiona
Spasibo ogromnoe:) Teper est shans spravitsja s domashnim zadaniem

Незачто :)

Можно убрать 2 команды strupr(...) и
вместо этого подключить ctype.h, т.е. в начало файла
#include <ctype.h>

и 2 первые ф-ии заменить на

Код:
int suche_erst_buch(char *line,int offset,char buch)
{
  int i = offset;
  while(toupper(line[ i])!= toupper(buch) && line[ i])i++;
  return i;
}

//2: поиск слова
int suche_ab_pos(char *line,int pos,char *wort)
{
  int i = pos;
  int j = 0;
  while ((toupper(line[ i])==toupper(wort[j])) && wort[j])
  {
    i++;
    j++;
  }
  if (wort[j]==0)
    return 1;
  else
    return 0;
}

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог