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

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

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

Строки - C++

03.01.2011, 01:37. Просмотров 562. Ответов 3
Метки нет (Все метки)

Ввести с клавиатуры строку символов. Подсчитать в ней количество запятых. Если это количество больше 3, то одну из них заменить на точку;
иначе - удалить все запятые из строки
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2011, 01:37     Строки
Посмотрите здесь:

Даны три строки. Определить можно ли из символов третьей строки получить первую и вторую строки - Java
Помогите пожалуйста! 1)Даны три строки. Определить можно ли из символов третьей строки получить первую и вторую строки. 2)Дана...

Ввести строки и через n символов первой строки вставить вторую строку, и так до конца строки - C++ Builder
Помогите исправить баг задача состоит в следующем :ввести строку и простроку тоесть две строки и надо через (n) символов первой строки...

Слить две строки, вставив символы одной строки между символами другой строки - Pascal
Строка a из n символов лексикографически меньше строки b из n символов, если существует такой индекс j, что aj < bj, а для всех i < j ai =...

Сравнить строки, первый несовпадающий элемент строки-приемника записать в регистр AL, строки-источника - в DL - Assembler
Помогите написать программу на ассемблерене совсем еще разобрался с этим задание: Ввести с клавиатуры две строки одноразрядных...

Определить длину строки. Если длина строки >6, удалить часть строки в { } скобках. - Turbo Pascal
Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши "Ввод". Программа должна определить длину введенной...

Строки. Если в конце строки точка отсутствует, то найти слово, заканчивающееся точкой и перенести его в конец строки. - Pascal
Дана строка, состоящая из слов и содержащая одну точку в конце одного из слов. Если в конце строки точка отсутствует, то найти слово,...

Строки. Определить длину введенной строки, если длина кратна 4, то первая часть строки меняется местами со второй - Turbo Pascal
Ввести с клавиатуры строку символов.признак окончания ввода строки-нажатие клавиши ввод.Программа должна определить длину введенной строки...

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки - C++
Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки. 1. Я дуб дубом,даже...

БД с операциями: добавление новой строки, удаление строки, редактирование имеющейся строки - PascalABC.NET
Нужно создать базу данных в паскале, с операциями: добавление новой строки, удаление строки, редактирование имеющей строки. Желательно с...

Строки. Даны строка S и подстрока S1.Удалить из строки S все вхождения строки S1 - Turbo Pascal
Даны строка S и подстрока S1.Удалить из строки S все вхождения строки S1.В строке S подсчитать кол-во вхождений строки S1.

Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк - C++
Есть динамический массив строк. Заполняется, т.е. размер его уже известен будет. Но дальше нужно сделать задание: "Добавить строки, начиная...

Строки. Даны строки S и So. Найти количество вхождений строки So в строку S - Turbo Pascal
Помогите пожалуйста, как сделать эту задачу без этих вот строчек... B:=TRUE; и без команды INC... Вот условие задачи: Даны строки S и...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
03.01.2011, 02:13     Строки #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
#include <iostream>
#include <string>
#include <clocale>
 
using namespace std;
 
void main()
{
    setlocale(LC_ALL, "Russian");
    
    string str;
    char comma = ',';
    int qty = 0;
 
    getline(cin, str);
 
    for (int i = 0; i < str.length(); i++)
        if (str[i] == comma)
            qty++;
 
    if (qty > 3) {
        cout << "Какую запятую по счету менят: ";
        cin >> qty;
        for (int i = 0; i < str.length(); i++) {
            if (str[i] == comma) qty--;
            if (!qty) {
                str.replace(i, 1, ".");
                break;
            }
        }
 
    }
    else
        for (int i = 0; i < str.length(); i++)
            if (str[i] == comma)
                str.replace(i, 1, "");
    
    cout << str << endl;
    system("pause");
}
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
03.01.2011, 02:26     Строки #3
Noviq,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <algorithm>
 
int main()
{
    typedef std::string T_str;
    T_str str;
    std::getline(std::cin, str);
    const char find=',';
    int cnt=std::count(str.begin(), str.end(), find);
    if(cnt > 3)
    {
        size_t idx=str.find(find);
        str.replace(idx, 1, ".");
     }
     else if(cnt >=0 && cnt <=3)
     {
        str.erase(std::remove(str.begin(), str.end(), find), str.end());
     }
     std::cout<<"Result\n"<<str<<'\n';
     return 0;
}
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
03.01.2011, 13:18     Строки #4
Цитата Сообщение от Noviq Посмотреть сообщение
Ввести с клавиатуры строку символов. Подсчитать в ней количество запятых. Если это количество больше 3, то одну из них заменить на точку;
иначе - удалить все запятые из строки
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>
 
#define BUFSIZE 256
#define IS_FIND ','
#define TO_INSERT '.'
 
void _swap(char *a, char *b)
{
    char t = *a;
    *a = *b;
    *b = t;
}
 
int main(void)
{
    char str[BUFSIZE];
    int cnt = 0, i, _i, j;
    printf("\n\nInput srting ->");
    scanf("%[^\n]%*c", str);
 
    for(i = 0; i < strlen(str); ++i)
        if(str[i] == IS_FIND)
            ++cnt;
 
    if(cnt > 3)
    {
        int ind;
        for(i = strlen(str) - 1; i >= 0; --i)
            if(str[i] == IS_FIND)
                ind = i;
 
        str[ind] = TO_INSERT;
    }
 
    else
    {
        cnt = 0;
        for(i = 0; i < strlen(str); ++i)
        {
           if(str[i] == IS_FIND)
           {
               _i = i;
               for(j = i + 1; j < strlen(str); ++j)
               {
                   _swap(&str[_i], &str[j]);
                   ++_i;
               }
               ++cnt;
           }
        }
    }
 
    printf("\n\nResult string -> ");
    cnt /= 2;
    for(i = 0; i < strlen(str) - cnt; ++i)
        printf("%c", str[i]);
 
    return 0;
}
Yandex
Объявления
03.01.2011, 13:18     Строки
Ответ Создать тему
Опции темы

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