0 / 0 / 0
Регистрация: 20.12.2012
Сообщений: 3
1

Задачка со строками(Требуется вставить символ между всеми парами соседних символов в строке)

20.12.2012, 01:16. Показов 1638. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Есть такая задачка:Файл состоит из записей вида "s пробел c", где s -строка, а с - символ. Требуется вставить с между всеми парами соседних символов s в каждой записи и записать результат в другой файл. Например, "брбн а" преобразуется в "барабан".
Подскажите пожалуйста в чём тут фишка - никак не могу понять. Подскажите вариант реализации.
Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2012, 01:16
Ответы с готовыми решениями:

В одномерном массиве вставить новый элемент между всеми парами элементов, имеющими разные знаки
В одномерном массиве, элементы которого – целые числа произвести следующие действия 1. вставить...

В одномерном массиве из целых чисел вставить новый элемент между всеми парами элементов, имеющими разные знаки
одномерном массиве из целых чисел вставить новый элемент между всеми парами элементов,имеющими...

В каждую пару символов 'AB' вставить символ '*', подсчитать, сколько раз в строке символ 'I' стоит перед '2'
Как реализовать вот это? В каждую пару символов 'AB' вставить символ '*', подсчитать, сколько раз...

Найдите расстояние между всеми парами точек
В модуль plane включите подпрограмму distance вычисления расстояния м/д двумя точками на плоскости...

2
Неэпический
17848 / 10616 / 2049
Регистрация: 27.09.2012
Сообщений: 26,686
Записей в блоге: 1
20.12.2012, 02:34 2
Лучший ответ Сообщение было отмечено Valentinka_ как решение

Решение

Это?
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>
#include <fstream>
 
int main(){
    std::ifstream infile("input.txt",std::ios::in);
    std::ofstream outfile("output.txt",std::ios::out);
    char str[1024];
    char ch, s[1024];
    char * pend;
    while(infile.getline(str,1024)){
        char *p;
        for(p=str,pend=s;(*p!=' ')&&(*pend=*p);++p,++pend);
        for(;(*p==' ')&& *p;++p);
        ch=*p;*pend=0;
        for(char *p=s+1;p<pend;p+=2){
            memmove(p+1,p,(pend-p)*sizeof(*p));
            *(++pend)=0;
            *p=ch;
        }
        outfile<<s<<'\n';
    }
    std::cout<<"Press Enter";
    std::cin.get();
    return 0;
}
1
0 / 0 / 0
Регистрация: 20.12.2012
Сообщений: 3
20.12.2012, 12:26  [ТС] 3
Спасибо огромное,Croessmah! а можно это как-то сделать не используя функцию memmove? И я понимаю,что ifstream и ifstream оптимально, но можно ли как-то используя puts и gets?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2012, 12:26
Помогаю со студенческими работами здесь

Сумма расстояний между всеми парами вершин графа
Как найти сумму расстояний между всеми парами вершин взвешенного графа? Подскажите алгоритм.

Найти кратчайшие пути между всеми парами вершин графа
1. Для заданного графа в виде матрицы смежности представить его графическое изображение с помощью...

Нахождения кратчайших путей между всеми парами вершин графа
Подскажите как можно улучшить алгоритм Флойда-Уоршелла что-бы он верно работал если длина некоторых...

Найти наибольшее из расстояний между всеми возможными парами вершин
Для многоугольника, заданного координатами вершин, найти наибольшее из расстояний между всеми...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru