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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
bam32
1 / 1 / 0
Регистрация: 10.11.2011
Сообщений: 48
#1

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

23.12.2011, 01:35. Просмотров 362. Ответов 5
Метки нет (Все метки)

Всем привет! нужно написать вот такую прогу :

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


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


заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2011, 01:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки кто знает? (C++):

кто знает строки? - C++
2Ввести три слова. Поменять местами первое и третье слова. помогите((((

Кто че знает? - C++
Не ссылаясь на доказательство теоремы Ферма, покажите, что множество всех показателей n, для которых существует решение уравнения xn + yn =...

Кто знает,ответьте) - C++
Как реализованы строки с языке программирования Си? Почему строки называют нуль-терминальными? Сколько байт памяти необходимо для...

Подскажите кто знает - C++
Здравствуйте. Вот у меня очередная проблема, не компилируетса данная часть кода и непонятно в чём проблема. string array = ...

кто знает как? - C++
1. Написать шаблон функции для нахождения индексов элементов из заданного интервала, посортованих за спадением значений. Потом...

Кто знает ответы на тесты? - C++
а то я не уверен что правильно сделал 1.в. 2.в. 3.в. 4.б. 5.в. 6.в.

5
alkagolik
Заблокирован
23.12.2011, 01:43 #2
Цитата Сообщение от bam32 Посмотреть сообщение
но нужен код как можно проще! я на первом курсе, так что если прога будет написана слишком заумно препод не поверит!
а тут очень просто не получится. Вам изначально надо работать с функциями выделения\расширения\освобождения\копирования памяти, а все они работают с указателями, которые как я понимаю для вас темный лес. Разве что задача сводится тупо к: число введенное с клавиатуры вывести в словесном виде. Что просто но геморно
0
Dekio
23.12.2011, 01:51
  #3

Не по теме:

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

0
darkknight2008
62 / 62 / 6
Регистрация: 16.10.2011
Сообщений: 200
23.12.2011, 02:02 #4
Самым легким способом, будет посчитать кол-во цифр в строке, на основе этого высчитать длину конечной строки(или брать конечную с запасом - думаю будет лучше, тебе решать), а потом перебираем символы в исходной, записываем их в конечную. Если в исходной натыкаемся на цифру, то подставляем слово в конечную.
Сейчас я это делать не хочу, но если требуется, то после сна я смогу это сделать. Но может получиться слишком заумно... но по идее для первого курса сойдет. Программу можно сделать и заумной, главное суметь объяснить.
0
bam32
1 / 1 / 0
Регистрация: 10.11.2011
Сообщений: 48
23.12.2011, 02:04  [ТС] #5
Цитата Сообщение от darkknight2008 Посмотреть сообщение
Сейчас я это делать не хочу, но если требуется, то после сна я смогу это сделать. Но может получиться слишком заумно... но по идее для первого курса сойдет
если не трудно будет, то я буду рад!
0
darkknight2008
62 / 62 / 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"); // Пауза программы
}
Если нужен продвинутый(он будет более сложным, т.к. будет дофига проверок и еще дополнительные функции) отпишись, я наклепаю его как-нить.
2
23.12.2011, 02:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2011, 02:49
Привет! Вот еще темы с ответами:

двумерный массив! кто знает? - C++
Всем привет! Вопрос: Как в двумерном массиве посчитать количество столбцов, содержащих хотя бы один нулевой элемент!?

кто нибудь из программистов знает? - C++
Кто нибудь из программистов знает, а то я запарился искать книги (вернее задачи) на классы, указатели,обьекты и т.д. В интернете очень...

кто знает решение напишите - C++
Пожалуйста, подскажите в чем ошибка. При запуске выдает ошибку: «error C4716: mean: должна возвращать значение». Два дня голову ломал,...

Кто знает как из DEVc++ транслировать в C++? - C++
Есть программа написанная в Dev, которая не работает в Visual C++. Как данную программу перевести в Си? В чем их особенности? Вот сама...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru