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

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

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

Строки - C++

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

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

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

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

Удалить строки динамической матрицы, начиная со строки К1 и до строки К2 - C++
Сформировать динамический двумерный массив, заполнить его случайными числами и удалить строки, начиная со строки К1 и до строки К2 вот...

Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней - C++
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка...

Функция перезаписывает символы строки заданным количеством символов другой строки - C++
Программа работает. Но не совсем правильно. В конечной строке появляются непонятные символы, которых быть там не должно. В программе нельзя...

Чтение через fscanf_s части строки с пробелом (и запись этой же строки) - C++
нужно записать в файл строку, содержащую через табуляцию int, char, char, char, float, int. Далее необходимо из такой же строки вывести...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Минич
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
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 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
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.01.2011, 13:18
Привет! Вот еще темы с ответами:

Упорядочить символы строки B в алфавитном порядке и удалить латинские буквы из строки A - C++
&quot;Даны строки A и B. Если в A есть латинские буквы, а в B нет повторяющихся символов, то упорядочить символы B в алфавитном порядке и...

Прибавить ко всем элементам каждой строки максимальное значение этой строки - C++
добрый вечер! Помогите пожалуйста доработать код! Изменить текущий массив, прибавив ко всем элементам каждой строки максимальное...

Вычислить длину введенной строки и вывести символы строки с четными индексами - C++
Напишите программу, которая требует ввода строки с клавиатуры. Программа вычисляет длину строки и выводит на экран только те символы...

Как считать строки из файла, если там больше одной строки? - C++
Как считать строки из файла в массив. Если в файле одна строка, то нет проблем, но если несколько, то при использовании функции fgets ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.01.2011, 13:18
Ответ Создать тему
Опции темы

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