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

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

Войти
Регистрация
Восстановить пароль
 
itmaster
Сообщений: n/a
#1

Строки, замена последовательностей элементов - C++

09.12.2009, 02:42. Просмотров 956. Ответов 1

Всем доброго времени суток!
Народ нужен хелп! Задание со строками на С++ в консольном режиме.
Само задание:
В заданной строке заменить все последовательности "on" на "online".
Например: для строки “abcoon1.boon” -“abcoonline1.boonline”
Препод предложил реализовать прогу с помощью функций:
bool Check(char src[], int p, char substr[]); где p - позиция
и
void Add(char src[], char substr[]);

Подтолкните на мысль, как сделать задание, используя эти две функции?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2009, 02:42     Строки, замена последовательностей элементов
Посмотрите здесь:

Замена первых элементов каждой строки квадратной матрицы на сумму элементов этой строки - C++
Замена первых элементов каждой строки квадратной матрицы на сумму элементов этой строки

Замена элементов строки матрицы - C++
Здравствуйте, как можно заменить элементы каждой строки матрицы на обратный. То есть если у нас дана матрица: 3 1 2 3 5 6 8 3 4 ...

Строки. Обработка последовательностей символов - C++
Есть маленькая проблема. Нужно изменить программу так, что бы заменить 'child' на 'children' и удалить все символы, являющеися цифрами....

Найти произведение самых длинных последовательностей отрицательных чисел каждой строки матрицы - C++
Всю голову сломал этой задачей:Составить программу, которая находит в каждой строке матрицы S(k,l), k≤12, l≤15, самую длинную...

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

Замена строки в файле - C++
Здравствуйте, подскажите новичку! Проблема в следующем: например есть файл txt в нем например строки(состоящие из символов): ...

Замена строки в файле - C++
Язык не С++ Но функции те же. stock replace_str_to_file(filename, what, with) { if(!file_exists(filename)) return -1 ...

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

Замена строки в exe - C++
Здравствуйте! Возникла такая вот задача: нужно заменить переменной типа string в уже скомпилированном exe файле (исходник на c++,...

Строки (замена символов) - C++
У нас есть строка (пробел,точка,буква...) нужно заменить ===> на a на приоритет сначала 2 точки пример: qweasd...asdzxc.. fds...

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

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
09.12.2009, 14:35     Строки, замена последовательностей элементов #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
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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
#define MAXLEN 4096
 
static int slen;
static int check(char *, int, char *);
static void add(char *, char *, int, int);
 
int
main(void)
{
    char s[MAXLEN], *p;
    char *template = "on";
    char *substr = "online";
    int i, tlen, sublen;
 
    printf("Введите строку: ");
    if(fgets(s, sizeof(s), stdin) == NULL || *s == '\n')
        return 1;
    if(p = strrchr(s, '\n'))
        *p = '\0';
    
    slen = strlen(s);
    tlen = strlen(template);
    sublen = strlen(substr);
    for(i = 0; s[i] != '\0'; i++)
        if(check(s, i, template))
            add(s + i, substr, sublen, tlen);
    printf("Получили: %s\n", s);
    return 0;
}
 
/*
 * check: проверка на вхождение подстроки substr
 * в строку s с позиции pos */
static int
check(char *s, int pos, char *substr)
{
    int i, j;
    for(i = pos, j = 0; substr[j] == s[i]
                        && substr[j] != '\0'; i++, j++)
        ;
    return (substr[j] == '\0') ? 1 : 0;
}
 
/* 
 * add: замена заданного шаблона длиной tlen
 * в строке s на подстроку substr длиной sublen */
static void
add(char *s, char *substr, int sublen, int tlen)
{
    if(slen + sublen - tlen + 1 > MAXLEN) {
        printf("В строке недостаточно места для замены.\n");
        exit(1);
    }
    memmove(s + sublen, s + tlen, strlen(s + tlen) + 1);
    memmove(s, substr, sublen);
}
Yandex
Объявления
09.12.2009, 14:35     Строки, замена последовательностей элементов
Ответ Создать тему
Опции темы

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