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

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

Войти
Регистрация
Восстановить пароль
 
Евгений123
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 12
#1

Преобразовать точки в троеточия - C++

18.10.2012, 21:18. Просмотров 400. Ответов 4
Метки нет (Все метки)

Дана строка символов. Преобразовать ее, заменив в ней каждую точку многоточием.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>


void main ()
{int i;
char stroka [100];
printf ("vvedite stroku\n");
gets (stroka);


for (i=0; i < strlen(stroka); i++)
{if (stroka[i]=='.')
{stroka[i]='.';
stroka[i+1]='.';
stroka[i+2]='.';
i=i+2;
}

}
printf ("%s", stroka);

getch();


}
Почти работающий код, только при замене точки на троеточие он заменяет последующие символы
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2012, 21:18     Преобразовать точки в троеточия
Посмотрите здесь:

Как преобразовать большое число в строку через stringstream и ограничить знаки после точки - C++
опять возникла проблема которая была недавно но с другим методом нужно преобразовать большое число типо double в строку через...

В символьной строке вместо каждой точки вставить три точки - C++
В символьной строке типа char, вводимой с клавиатуры вместо каждой найденной точки вставить три точки Желательно использовать только...

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

Найти самый короткий путь от точки до точки в матрице - C++
Народ, помогите... Такая задача, имеется массив символов(char arr) в котором в рандомных местах установлены препятствия(к примеру символы...

Заменить все запятые на точки, а точки - на восклицательные знаки - C++
Помогите! 19. Во введенной строке заменить все запятые на точки, а точки - на восклицательные знаки. Подсчитать количество сделанных...

Задача (вывести длину кратчайшего пути от точки до точки.) - C++
Пишу задачу, нужно вывести длину кратчайшего пути от точки до точки. проблема в том, что после генерации массива и задания ему...

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

Преобразовать - C++
Опытные программисты) не знал куда написать, решил сюда. Вообщем есть код на с++ read(n); c=0; m=0; for i=1..n{ read(x); ...

Преобразовать массив - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить номер минимального элемента массива. Преобразовать массив таким ...

Преобразовать массив X - C++
Преобразовать массив Х, расположив вначале его отрицательные элементы, а затем неотрицательные элементы, сохранив при этом в каждой из двух...

Преобразовать массив - C++
Помогите преобразовать массив, а то чтот вообще не пойму как: Дано массив a. В массиве расположить сначала все элементы, отличающиеся...

Невозможно преобразовать - C++
Как пофиксить?


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
4221 / 2195 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
18.10.2012, 21:23     Преобразовать точки в троеточия #2
Цитата Сообщение от Евгений123 Посмотреть сообщение
Почти работающий код, только при замене точки на троеточие он заменяет последующие символы
так вы не просто заменяйте, а перед этим на 2 позиции все символы сдвиньте вправо)
Петррр
5942 / 3379 / 335
Регистрация: 28.10.2010
Сообщений: 5,926
18.10.2012, 21:26     Преобразовать точки в троеточия #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
 
std::string replace_to_three_dots(const std::string& str)
{
    std::string _str = str;
    for(int i = _str.size() - 1; i >= 0; --i)
        if (str[i] == '.')
            _str.insert(i, "..");
    return _str;
}
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::cout << replace_to_three_dots(str) << std::endl;
}
Евгений123
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 12
18.10.2012, 21:26  [ТС]     Преобразовать точки в троеточия #4
А если не сложно, можете подсказать, как сдвинуть элементы в массиве, а то совсем из головы вылетело)
Thinker
Эксперт C++
4221 / 2195 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
18.10.2012, 21:37     Преобразовать точки в троеточия #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
если максимально попроще, то можно так:
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
#include<iostream>
void Transform(char *s, char c)
{
   int i = 0, j, len = strlen(s);
   while(s[i])
   {
      if (s[i] == c)
      {
          for(j = len + 2; j > i; j--)
             s[j] = s[j - 2];
          len += 2;
          s[i + 1] = s[i + 2] = c;
          i += 3;
      }
      else i++;
   }
}
 
int main()
{
   char s[1024] = "123.abc.xyz";
   Transform(s, '.');
   std::cout << s;
   return 0;
}
Yandex
Объявления
18.10.2012, 21:37     Преобразовать точки в троеточия
Ответ Создать тему
Опции темы

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