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

Написать функцию, которая удаляет из строки s1 все символы, встречающиеся в строке s2 - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Отредактировать текст так, чтобы между словами был ровно один пробел http://www.cyberforum.ru/cpp-beginners/thread119237.html
:wall:Люди, плз помогите с задачами : № 1. Даны две символьные строки, состоящие только из цифр (длина каждой - более 10 символов). Считая, что в этих строках находятся очень длинные целые числа, сформировать третью строку - сумму этих чисел.:wall::wall: № 2. Дан произвольный текст. Отредактировать текст так, чтобы: а) между словами был ровно один пробел; б) предложения в тексте...
C++ СЛАУ методом Гаусса (ведущий элемент отыскивается среди строк и столбцов) Привет, всем! Помогите пожалуйста. Вот собственно, задача: Разрабоать программу для численного решения СЛАУ методом Гаусса, где ведущий элемент отыскивается СРЕДИ (в теме опечатка) строк и столбцов. Что необходимо сделать, я не осбобо пойму условие. Нужно чтобы пользователь ввел данные уравнений? зачем ведущий элемент искать? Да забыл, на с++ задание http://www.cyberforum.ru/cpp-beginners/thread119232.html
C++ Вычисление функции
Задача1.Линейные вычислительные процессы. Задание. Разработать алгоритм и составить по нему программу для вычисления значений функции z = f(x,y). Область определения функции не учитывать.(рис 1) Задача 2.Разветвляющиеся вычислительные процессы. Задание. Разработать алгоритм и составить по нему программу для вычисления значений функции y = f(x). Необходимо учитывать область определения...
Программа не работает на компьютере, где не установлен Builder C++ Builder
Вот у меня есть програма написана на Borland C++ Builder. Я ее компилирую и все отлично пашет, но когда я переношу прогрогу на другой комп на котором нету Борланда она не пашет! Как скомпилирывать прогу так чтоб она пахала без борланда????
C++ ошибка http://www.cyberforum.ru/cpp-beginners/thread119182.html
Вот программа::: #include <iostream> using namespace std; void check() { int kol_vo_per; cout << "Enter Kolvo chisel v posl " << endl; cin >> kol_vo_per; int *massiv=new int; for(int i=0;i<kol_vo_per;i++)
C++ создать файл Используя функции и режим меню, создать файл из 10 структур, просмотреть файл, добавить в файл новую информацию и, применяя режим прямого доступа Вывести на печать информацию о самом дешевом издании. Структура имеет вид: название издания, газеты или журнала, стоимость одного экземпляра, количество экземпляров в год. Подскажите (не считая литературы по С) может у кого то есть что то подобное или... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
20.04.2010, 10:34     Написать функцию, которая удаляет из строки s1 все символы, встречающиеся в строке s2
Цитата Сообщение от PointsEqual Посмотреть сообщение
щас easybudda с STL сделает)
Да тут и без STL не много писанины...
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
#include <stdio.h>
#include <string.h>
 
/* Написать и протестировать функцию DELETE(s1, s2), которая удаляет из строки s1 все символы, встречающиеся в строке s2. */
 
char *DELETE(char *s1, const char *s2){
    char *p;
    while ( p = strpbrk(s1, s2) )
        memmove(p, p + 1, strlen(p));
    return s1;
}
 
int main(void){
    char s1[BUFSIZ], s2[BUFSIZ];
    
    printf("String: ");
    if ( !fgets(s1, BUFSIZ, stdin) )
        return 1;
    printf("Characters to remove: ");
    if ( !fgets(s2, BUFSIZ, stdin) )
        return 1;
    
    DELETE(s1, s2);
    printf("Result: %s\n", s1);
    
    return 0;
}
Добавлено через 1 час 13 минут
корявенько как-то получилось, но работает...
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <stdio.h>
#include <string.h>
 
/*
*   Написать и протестировать функцию ESCAPE(str1, str2), которая при копировании текста из str1 в str2 
*   преобразует литеры "новая строка" и "табуляция" в видимые последовательности литер \n и \t. 
*   Сделать также функцию, выполняющую обратное преобразование.
*/
 
char *ESCAPE(char *s1, size_t len, const char *s2){
    char *p;
    for ( p = s1; *s2; ++s2 ){
        switch ( *s2 ){
            case '\n' :
                if ( (len -= 2) > 0 ){
                    *p++ = '\\';
                    *p++ = 'n';
                }
                else {
                    *p = '\0';
                    return s1;
                }
                break;
            case '\t' :
                if ( (len -= 2) > 0 ){
                    *p++ = '\\';
                    *p++ = 't';
                }
                else {
                    *p = '\0';
                    return s1;
                }
                break;
            default :
                if ( --len > 0 ){
                    *p++ = *s2;
                }
                else {
                    *p = '\0';
                    return s1;
                }
                break;
        }
    }
    *p = '\0';
    return s1;
}
 
/* s1 должна быть не меньше s2 */
char *UNESCAPE(char *s1, const char *s2){
    char *p;
    for ( p = s1; *s2; ++s2 ){
        if ( *s2 == '\\' ){
            switch ( *(s2 + 1) ){
                case 'n' :
                    *p++ = '\n';
                    ++s2;
                    break;
                case 't' :
                    *p++ = '\t';
                    ++s2;
                    break;
                default :
                    *p++ = '\\';
                    break;
            }
        }
        else{
            *p++ = *s2;
        }
    }
    *p = '\0';
    return s1;
}
 
 
int main(void){
    char s1[BUFSIZ], s2[BUFSIZ];
    strcpy(s1, "aaa\tbbb\nccc\tddd\n");
    printf("Origin: %s\n", s1);
    printf("Escaped: %s\n", ESCAPE(s2, BUFSIZ, s1));
    printf("Unescaped: %s\n", UNESCAPE(s1, s2));
    return 0;
}
 
Текущее время: 03:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru