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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Потоки, приоритеты http://www.cyberforum.ru/cpp-beginners/thread72095.html
Нужно вывести квадраты на форме (каждый в своём потоке), в зависимости от приоритета, один прорисовывается быстрее, другой медленее. Сделал так: DWORD WINAPI OnPaint4(LPVOID lparam) { HDC *hdc=(HDC*)lparam; Graphics graphics(hdc); Pen pen(Color(255, 0, 0, 255),4); for (int i=1;i<110;i++) { Sleep(5000);
C++ Динамичиские структуры Помогите написать программу: В составе программы описать функцию, которая формирует список Common, включив в него элементы, которые входят одновременно в спи-сок М1 и М2. язык с++ http://www.cyberforum.ru/cpp-beginners/thread71758.html
Как найти обратную матрицу? C++
Как найти обратную матрицу C# в visual studiо ?
Методы строкового класса C++
Нужно разработать реализацию класса string, позволяющего оперировать с текстовыми строками, как с базовыми типами данных. Класс должен обеспечивать выполнение следующих операции: - конкатенация строк (оператор +) - поиск и замена текста (метод replace) - (еще куча всего, что я уже написал) Вот каким образом все выглядит(убраны другие методы, чтобы не загромождать): Код: class...
C++ Нужен код функции, которая отправляет письмо на ящик на mail.ru http://www.cyberforum.ru/cpp-beginners/thread71187.html
Нужен код функции, которая отправляет письмо на ящик на mail.ru.
C++ Описать функции ввода с клавиатуры элементов одномерного массива и определения количества нулей в этом массиве 1) вычислите не использую функцию pow(), значение функции Z(x,m)=x в степени m умножить sin в степени m (xm). для значений аргументов х от -1.1 до 0.3 с шагом 0.2; m от 1 до 5 с шагом 1. 2) Описать функции ввода с клавиатуры элементов одномерного массива и определения количества нулей в этом массиве. подробнее

Показать сообщение отдельно
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
09.12.2009, 14:35     Строки, замена последовательностей элементов
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);
}
 
Текущее время: 05:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru