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

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

Войти
Регистрация
Восстановить пароль
 
Максим1827
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 64
#1

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

22.01.2013, 21:05. Просмотров 325. Ответов 3
Метки нет (Все метки)

В произвольно взятом предложении заменить каждую цифру 0…9 на слова «ноль», «один», …, «девять».
Помогите с кодом

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

C++ Каждую цифру текста, которая находится перед первым символом "+", заменить на запятую
C++ Распечатать количество вхождений заданного слова в каждую строку и заменить его на другое заданное слово
C++ Строковые литералы. Ошибки
Каждую из малых латинских букв, предшествующих первому вхождению символа *, заменить на цифру 3 C++
C++ Строковые литералы, не пойму как реализовать
C++ Каждую цифру заменить на заключенную в круглые скобки последовательность знаков
Каждую цифру заменить на заключенную в круглые скобки последовательность знаков ‘+’ C++
Поменять каждую согласную русскую букву на цифру «8», а каждую гласную – на символ «–» C++
Можно ли сравнивать строковые литералы? как правильно это сделать? C++
C++ Заменить в файле каждую первую букву слова на прописную
Вывести каждую цифру из введенного числа C++
C++ Каждую цифру текста, которая находится перед первым символом "+", заменить на запятую

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2914 / 1343 / 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
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6216 / 3461 / 423
Регистрация: 29.11.2010
Сообщений: 9,168
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 на слова)
Ответ Создать тему
Опции темы

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