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

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

Войти
Регистрация
Восстановить пароль
 
lips!!
2 / 2 / 1
Регистрация: 02.04.2011
Сообщений: 86
#1

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

03.04.2011, 16:10. Просмотров 410. Ответов 8
Метки нет (Все метки)

Дана символьная строка, состоящая из нескольких слов разделённых одним или несколькими пробелами. Каждое слово может содержать как буквы, так и цифры. Требуется каждую цифру, входящую в слово увеличить на еденицу.
Пример:
Исходная строка "sd9w df45 39we"
Полученая строка "sd10w df46 40we"


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

Сформировать строку S таким образом, чтобы в нее попеременно вошли четные символы строки S1 и нечетные символы строки S2. - C++
Вот задание: Даны строки S1 и S2. Сформировать строку S таким образом, чтобы в нее попеременно вошли четные символы строки S1 и...

Вывести на экран в первой строке нечетные символы, во второй четные символы исходной строки - C++
Помогите написать 3 программы. (на С или С++) 1. Вывести на экран в первой строке нечетные символы, во второй четные символы исходной...

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

Как обрезать эффективно часть строки, составляющую последние символы "/" и следующие за ними символы? - C++
здравствуйте, есть код, обрезающий во входной строке часть составляющую последние символы "/" и следующие за ними символы: std::string...

Упорядочить символы строки B в алфавитном порядке и удалить латинские буквы из строки A - C++
"Даны строки A и B. Если в A есть латинские буквы, а в B нет повторяющихся символов, то упорядочить символы B в алфавитном порядке и...

Функция перезаписывает символы строки заданным количеством символов другой строки - C++
Программа работает. Но не совсем правильно. В конечной строке появляются непонятные символы, которых быть там не должно. В программе нельзя...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zulkis
682 / 609 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
03.04.2011, 16:38 #2
Находишь символ-цифру, смотришь следующий символ, если цифра, снова смотришь следующий, если не цифра, работаешь с предыдущими.

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

Самый интересный вариант это 9\99\999. Придется создавать новую строку, либо смещать все символы, так как 9 превратится в 10, etc.
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
03.04.2011, 16:43 #3
Цитата Сообщение от lips!! Посмотреть сообщение
Требуется каждую цифру,
Может все-таки каждое число ?Так как смотря на пример входных/выходных данных, это выплывает.
zulkis
682 / 609 / 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
682 / 609 / 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
682 / 609 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
03.04.2011, 17:50 #8
ну так и присваивай в 0, т.е в 48, если у тебя там 9ка, а после проверяй предыдущий символ на <9 снова.
lips!!
2 / 2 / 1
Регистрация: 02.04.2011
Сообщений: 86
03.04.2011, 18:06  [ТС] #9
Цитата Сообщение от zulkis Посмотреть сообщение
ну так и присваивай в 0, т.е в 48, если у тебя там 9ка, а после проверяй предыдущий символ на <9 снова.
это тоесть число смотреть с конца?
если 9 то записывать 0.. и +1 к следущему...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2011, 18:06
Привет! Вот еще темы с ответами:

Вычислить длину введенной строки и вывести символы строки с четными индексами - C++
Напишите программу, которая требует ввода строки с клавиатуры. Программа вычисляет длину строки и выводит на экран только те символы...

Определить длину строки,удалить из строки все символы, которые равны заданному - C++
Доброго времени суток уважаемые форумчане. Помогите пожалуйста с написанием кода для данной задачи в вижуале. Если будет возможно,то с...

Отсортировать цифры, символы и буквы из строки в отдельные строки - C++
1. Дана строка содержащая цифры, символы и буквы. Отсортировать их в отдельные строки. 2. 3. 4.Правила

Строки в с++. После строки выводятся не понятные символы - C++
Помогите плиз найти ошибку в задачке, работает правильно, но выводит в конце &quot;левые&quot; символы. как их убрать? Функции передаёться...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.04.2011, 18:06
Ответ Создать тему
Опции темы

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