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

Строковые литералы (заменить каждую цифру 0…9 на слова) - C++

Восстановить пароль Регистрация
 
Максим1827
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 64
22.01.2013, 21:05     Строковые литералы (заменить каждую цифру 0…9 на слова) #1
В произвольно взятом предложении заменить каждую цифру 0…9 на слова «ноль», «один», …, «девять».
Помогите с кодом

Добавлено через 9 минут
вверх
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2013, 21:05     Строковые литералы (заменить каждую цифру 0…9 на слова)
Посмотрите здесь:

C++ Распечатать количество вхождений заданного слова в каждую строку и заменить его на другое заданное слово
C++ Строковые литералы. Ошибки
C++ Строковые литералы, не пойму как реализовать
Как удвоить каждую цифру трицифрового числа? C++
Каждую цифру заменить на заключенную в круглые скобки последовательность знаков ‘+’ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2911 / 1340 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
22.01.2013, 21:54     Строковые литералы (заменить каждую цифру 0…9 на слова) #2
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
#include <iostream>
#include <cstring>
 
char *replaceDigits(char *destination, const char *source) {
  static const char DIGITS[10][6] = {"zero", "one", "two", "three", "four",
    "five", "six", "seven", "eight", "nine"};
  char *result = destination;
  while (*source != '\0') {
    if (*source - '0' > -1 && *source - '0' < 10) {
      for (const char *digit = DIGITS[*source - '0']; *digit != '\0'; ++digit)
        *destination++ = *digit;
    } else {
      *destination++ = *source;
    }
    ++source;
  }
  *destination = '\0';
  return result;
}
 
 
int main(int argc, char **argv) {
  
  char *result = new char[1024];
  std::cout << replaceDigits(result, "in 1941 there was a ww2") << std::endl;
  delete [] result;
 
  std::cin.get();
  return 0;
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4928 / 2671 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
22.01.2013, 21:59     Строковые литералы (заменить каждую цифру 0…9 на слова) #3
C++
1
if (isdigit(*source))
Максим1827
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 64
22.01.2013, 22:05  [ТС]     Строковые литералы (заменить каждую цифру 0…9 на слова) #4
спасибо большое!но это ты сделал через функции, а мне бы желательно в самом просто виде, через обработку строковых литералов, но я щас попробую сам преобразовать

Добавлено через 3 минуты
вверх
Yandex
Объявления
22.01.2013, 22:05     Строковые литералы (заменить каждую цифру 0…9 на слова)
Ответ Создать тему
Опции темы

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