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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2009, 16:09   #1
SuccEssoR
 
Регистрация: 31.12.2008
Сообщений: 6
По умолчанию Нужна помощь с лабораторкой. C language, strings

Вечер добрый, нужна помощь со строками. Задание было следующим:
Пользователь вводит строку, затем сочетание букв или одну букву. Программа должна найти введенное сочетание в исходной строке и снова напечатать текст с указанным сочетанием в верхнем регистре.

Пример:
******
Enter string: to be or not to be
Enter substring: be

Output: to BE or not to BE
******


З.Ы.
У меня запара с указателями, никак не могу въехать в эту тему, читаю лекции по второму кругу=\

Последний раз редактировалось SuccEssoR; 07.01.2009 в 16:52.
SuccEssoR вне форума Ответить с цитированием
Старый 07.01.2009, 17:53   #2
Goblin
Форумчанин
 
Регистрация: 24.11.2007
Сообщений: 196
По умолчанию

Код:
#include <stdio.h>
#include <string.h>
// #include <cctype> для int toupper(Char)

char *malloc(int); // Динамич. выдиление памяти.

int main()
{
  char *String = malloc(256);
  char *found_str = malloc(256);
  char *p_to_found_str;
  char *s;
  printf("ENETR STRING: ");
  scanf("%s", String);
  
  printf("ENTER STRING FOR FOUND: ");
  scanf("%s", found_str);
  
  s = strstr(String, found_str);
  p_to_found_str = found_str;
  
  while(*String != '\0')
  {
    if(String == s)
    {
      while(*String == *p_to_found_str)
      {
        printf("%c", toupper(*String));
        s++;
        String++;
        p_to_found_str++;
      }
      s = strstr(String, found_str);
      p_to_found_str = found_str;
    }
    else
    {
      printf("%c", *String);
      String++;
    }
  }
  printf("\n");
  return 0;
}
Goblin вне форума Ответить с цитированием
Старый 07.01.2009, 18:06   #3
SuccEssoR
 
Регистрация: 31.12.2008
Сообщений: 6
По умолчанию

ммм, компайлер рычит на toupper. И если не ошибаюсь, то данный код будет глючить после первого же пробела в случае когда вводится фраза.
SuccEssoR вне форума Ответить с цитированием
Старый 07.01.2009, 18:07   #4
SuccEssoR
 
Регистрация: 31.12.2008
Сообщений: 6
По умолчанию

Но спасибо за хелп. Пытаюсь даьше =)
SuccEssoR вне форума Ответить с цитированием
Старый 07.01.2009, 19:43   #5
Goblin
Форумчанин
 
Регистрация: 24.11.2007
Сообщений: 196
По умолчанию

Цитата:
Сообщение от SuccEssoR Посмотреть сообщение
ммм, компайлер рычит на toupper. И если не ошибаюсь, то данный код будет глючить после первого же пробела в случае когда вводится фраза.
Он не глючит. Просто scanf() считываем символы до первого пробела а все что дальше идет в следующий scanf();

Чтоб он на toupper не ругался подключи cctype.h(Но это зависит какой у тебя компилер).
Goblin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с лабораторкой. Raptor5 Паскаль, Turbo Pascal, PascalABC.NET 6 10.06.2008 16:05
C#, помогите плиз с лабораторкой Raptor5 Помощь студентам 3 30.05.2008 01:29
Помогите с лабораторкой Raptor5 Помощь студентам 3 21.05.2008 23:31