Форум программистов, компьютерный форум CyberForum.ru

Строки кто знает? - C++

Восстановить пароль Регистрация
 
bam32
1 / 1 / 0
Регистрация: 10.11.2011
Сообщений: 48
23.12.2011, 01:35     Строки кто знает? #1
Всем привет! нужно написать вот такую прогу :

но нужен код как можно проще! я на первом курсе, так что если прога будет написана слишком заумно препод не поверит!


Во введённом тексте заменить цифры от 0 до 9 на слова «ноль, «один», …, «девять».


заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2011, 01:35     Строки кто знает?
Посмотрите здесь:

Borland 3.1 кто знает поможет C++
Кто знает,ответьте) C++
C++ кто знает как?
кто знает строки? C++
C++ Подскажите кто знает
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
23.12.2011, 01:43     Строки кто знает? #2
Цитата Сообщение от bam32 Посмотреть сообщение
но нужен код как можно проще! я на первом курсе, так что если прога будет написана слишком заумно препод не поверит!
а тут очень просто не получится. Вам изначально надо работать с функциями выделения\расширения\освобождения\копирования памяти, а все они работают с указателями, которые как я понимаю для вас темный лес. Разве что задача сводится тупо к: число введенное с клавиатуры вывести в словесном виде. Что просто но геморно
Dekio
23.12.2011, 01:51
  #3

Не по теме:

Цитата Сообщение от bam32 Посмотреть сообщение
если прога будет написана слишком заумно препод не поверит!
Если вы возьмете книгу и все выучите, то даже ваш препод поверит.

darkknight2008
 Аватар для darkknight2008
61 / 61 / 6
Регистрация: 16.10.2011
Сообщений: 200
23.12.2011, 02:02     Строки кто знает? #4
Самым легким способом, будет посчитать кол-во цифр в строке, на основе этого высчитать длину конечной строки(или брать конечную с запасом - думаю будет лучше, тебе решать), а потом перебираем символы в исходной, записываем их в конечную. Если в исходной натыкаемся на цифру, то подставляем слово в конечную.
Сейчас я это делать не хочу, но если требуется, то после сна я смогу это сделать. Но может получиться слишком заумно... но по идее для первого курса сойдет. Программу можно сделать и заумной, главное суметь объяснить.
bam32
1 / 1 / 0
Регистрация: 10.11.2011
Сообщений: 48
23.12.2011, 02:04  [ТС]     Строки кто знает? #5
Цитата Сообщение от darkknight2008 Посмотреть сообщение
Сейчас я это делать не хочу, но если требуется, то после сна я смогу это сделать. Но может получиться слишком заумно... но по идее для первого курса сойдет
если не трудно будет, то я буду рад!
darkknight2008
 Аватар для darkknight2008
61 / 61 / 6
Регистрация: 16.10.2011
Сообщений: 200
23.12.2011, 02:49     Строки кто знает? #6
Делать было нечего, вот и набросал ламерский вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <locale.h>
 
void main( void )
{
  // Устанавливаем поддержку русского в консоли
  setlocale(LC_ALL, "Russian");
  const int MAX_STR = 1000; // Максимальная длина строки
  const char *digWords[] = {"ноль", "один", "два", "три", "четыре",
                            "пять", "шесть", "семь", "восемь", "девять"};
  char str[MAX_STR];
  printf("Insert string: ");
  gets(str); // Вводим строку
  char outStr[MAX_STR]; // Строка вывода
  // Указатель на позицию в строке вывода
  char *outPos = outStr;
  // Пробегаем всю исходную строку пока не дойдем до конца
  for (int i = 0; str[i] != 0; i++)
  {
    // Если текущи символ - цифра.
    if (str[i] >= '0' && str[i] <= '9')
    {
      // Записываем цифру в виде слова
      strcpy(outPos, digWords[str[i] - '0']);
      // Смещаем указатель в строке вывода на длину записанного слова
      outPos += strlen(digWords[str[i] - '0']);
    }
    else // Если нам попалась не цифра
    {
      // Просто записываем этот символ в вывод
      *outPos = str[i];
      // И смещаемся на один символ в указателе
      outPos++;
    }
  }
  *outPos = 0; // Записываем символ конца строки.
  printf("Result: %s\n", outStr); // Выводим результат
  system("pause"); // Пауза программы
}
Если нужен продвинутый(он будет более сложным, т.к. будет дофига проверок и еще дополнительные функции) отпишись, я наклепаю его как-нить.
Yandex
Объявления
23.12.2011, 02:49     Строки кто знает?
Ответ Создать тему
Опции темы

Текущее время: 13:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru