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

Символы и строки - C++

Восстановить пароль Регистрация
 
lips!!
2 / 2 / 1
Регистрация: 02.04.2011
Сообщений: 86
03.04.2011, 16:10     Символы и строки #1
Дана символьная строка, состоящая из нескольких слов разделённых одним или несколькими пробелами. Каждое слово может содержать как буквы, так и цифры. Требуется каждую цифру, входящую в слово увеличить на еденицу.
Пример:
Исходная строка "sd9w df45 39we"
Полученая строка "sd10w df46 40we"


Подскажите как реализовать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2011, 16:10     Символы и строки
Посмотрите здесь:

C++ Разработать функцию,которая перекрывает символы строки заданным количеством символов другой строки, начиная с заданной позиции
C++ Отсортировать цифры, символы и буквы из строки в отдельные строки
C++ Сформировать строку S таким образом, чтобы в нее попеременно вошли четные символы строки S1 и нечетные символы строки S2.
C++ Строки в с++. После строки выводятся не понятные символы
C++ Определить длину строки,удалить из строки все символы, которые равны заданному
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
03.04.2011, 16:38     Символы и строки #2
Находишь символ-цифру, смотришь следующий символ, если цифра, снова смотришь следующий, если не цифра, работаешь с предыдущими.

Если несколько цифр, можно смотреть самый правый символ, и увеличивать его на единицу, а если он == 9, то делать его нулем, а предыдущий увеличивать на единицу.
Но это в общем.
Сами код напишите?)

Самый интересный вариант это 9\99\999. Придется создавать новую строку, либо смещать все символы, так как 9 превратится в 10, etc.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
03.04.2011, 16:43     Символы и строки #3
Цитата Сообщение от lips!! Посмотреть сообщение
Требуется каждую цифру,
Может все-таки каждое число ?Так как смотря на пример входных/выходных данных, это выплывает.
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
03.04.2011, 16:45     Символы и строки #4
asics, кстати да, указано вероятно неверно, ибо пример с изложением не сходятся )
lips!!
2 / 2 / 1
Регистрация: 02.04.2011
Сообщений: 86
03.04.2011, 16:53  [ТС]     Символы и строки #5
Цитата Сообщение от zulkis Посмотреть сообщение
Находишь символ-цифру, смотришь следующий символ, если цифра, снова смотришь следующий, если не цифра, работаешь с предыдущими.

Если несколько цифр, можно смотреть самый правый символ, и увеличивать его на единицу, а если он == 9, то делать его нулем, а предыдущий увеличивать на единицу.
Но это в общем.
Сами код напишите?)

Самый интересный вариант это 9\99\999. Придется создавать новую строку, либо смещать все символы, так как 9 превратится в 10, etc.
пишу уже..
непойму только как вот цифры из массива совместить в одну и прибавить 1
есть вариант создать ещё массив и записать кол-во знаков каждого числа по порядку...
ну а патом если число например 3ёх значное (5,4,3)
5*100
4*10
ну и сложить с 3..
мозг разрывается..
была бы программа для написания программ в программе
темболее я ещё можно сказать нуб в си

Добавлено через 2 минуты
Цитата Сообщение от asics Посмотреть сообщение
Может все-таки каждое число ?Так как смотря на пример входных/выходных данных, это выплывает.
это всеголиш задание... копипаст
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
03.04.2011, 17:03     Символы и строки #6
std::string по сути своей это массив char. Если не хотите лезть в таблицу ascii, то можете просто заменять char, на другой char.
А вообще советую ознакомиться:ASCII
С 48го начинаются циферки. Плюсуем - получаем следующий символ.
Совмещать то ничего и не нужно. попросту просматриваем символы и увеличиваем, если нужно.
lips!!
2 / 2 / 1
Регистрация: 02.04.2011
Сообщений: 86
03.04.2011, 17:20  [ТС]     Символы и строки #7
Цитата Сообщение от zulkis Посмотреть сообщение
std::string по сути своей это массив char. Если не хотите лезть в таблицу ascii, то можете просто заменять char, на другой char.
А вообще советую ознакомиться:ASCII
С 48го начинаются циферки. Плюсуем - получаем следующий символ.
Совмещать то ничего и не нужно. попросту просматриваем символы и увеличиваем, если нужно.
это то да... это я знаю))
но как быть с 57 тобеж 9.. я понять чёт немогу
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <stdio.h>
#include <conio.h>
void main()
{
 char a[100];
 int b=0,c[100],d,z[100],zz=0;
 clrscr();
 gets(a);
 for(int zzz=0;zzz<100;zzz++)
  z[zzz]=0;
 
 for(int x=0;x<100;x++)
 {
  for(int y=0;y<100;y++)
  {
   if(a[x]>=48 && a[x]<=57)
   {
    b++;
   }
   else
   {
    if(b>0)
    {
     c[d]=b;
     d++;
    }
    y=100;
    continue;
   }
  }
 }
 d=0;
 for(int n=0;n<100;n++)
 {
 
   if(a[n]>=48 && a[n]<=57)
   {
    if(c[d]>1)
    {
     for(int o=c[d],int p=0;o>0;o--,p++)
     {
      if(a[n+p]==57)
      {
       //тут я остановился и хз чё писать))
      }
      else
      {
        //тут ещё хз чё писать тоже
      }
     }
    }
    else
    {
     if(a[n]==57)
     {
      z[zz]=10;
      z[zz+1]=-500;
      zz=zz+2;
     }
     else
     {
      z[zz]=a[n]-48;
      z[zz+1]=-500;
      zz=zz+2;
     }
    }
   }
 
 }
}
я всётаки решил сделать ещё 1 масив в котором будут идти цифры через число -500
и как тока при выводе на экран строки if будет наступать на 57<>48
то будет выводить число из массива от -500 до сл -500
))
на большее моих мозгов не хватило..
прозьба не критиковать
это borland 3.1
нефакт что это будет работать((
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
03.04.2011, 17:50     Символы и строки #8
ну так и присваивай в 0, т.е в 48, если у тебя там 9ка, а после проверяй предыдущий символ на <9 снова.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2011, 18:06     Символы и строки
Еще ссылки по теме:

C++ Строки, символы. вычислить, сколько раз встречается каждый символ в обоих строках, вывести второе слово второй строки в обратном порядке
Задана строка, символы которой могут повторяться. Нужно удалить все символы строки с помощью наименьшего количества вычеркиваний C++
C++ Строки и символы

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

Или воспользуйтесь поиском по форуму:
lips!!
2 / 2 / 1
Регистрация: 02.04.2011
Сообщений: 86
03.04.2011, 18:06  [ТС]     Символы и строки #9
Цитата Сообщение от zulkis Посмотреть сообщение
ну так и присваивай в 0, т.е в 48, если у тебя там 9ка, а после проверяй предыдущий символ на <9 снова.
это тоесть число смотреть с конца?
если 9 то записывать 0.. и +1 к следущему...
Yandex
Объявления
03.04.2011, 18:06     Символы и строки
Ответ Создать тему
Опции темы

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