Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40

Удалить в строке символ "а" (найти ошибку)

12.01.2013, 22:50. Показов 1122. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
строку вводим с клавиатуры, удалить в строке символ "а".
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 "stdafx.h"
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
    char s[100], s2[100]=" ";
    cout<<"Vvedite stroku: ";
    cin>>s;
    int d=strlen(s);
    for (int i, j=0; i<d; i++, j++)
    {
        if (s[i]=='a')
        {
                i++; 
        }
        
                else 
        { 
            s2[j]=s[i];
            j++;
        
        }
    }
    cout<< s2 <<endl;
    system("pause");
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.01.2013, 22:50
Ответы с готовыми решениями:

Найти пробел в строке и удалить следующий за ним символ
Найти пробел в строке и удалить следующий за ним символ

Найти пробел в строке и удалить следующий за ним символ
Помогите, пожалуйста. Как в делфи найти пробел в строке и удалить следующий за ним символ.

Найти символ в строке и удалить все символы до него
Мне нужна функция которая проходит по строке, находя определенный символ копирует в буфер все что до него, удаляет из основной строки, и...

16
97 / 71 / 5
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
12.01.2013, 23:00
11 строчка переменная и=пустая
0
ComfyMobile
 Аватар для Nixy
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
12.01.2013, 23:03
Цитата Сообщение от Саня gamer Посмотреть сообщение
11 строчка переменная и=пустая
в 11 строке нету переменной и, есть переменная i и она не пустая а заполнена мусором
для ТС a,b = c неэквивалентно a = c , b = c
0
97 / 71 / 5
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
12.01.2013, 23:19
Вроде работает
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
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
    char s[100], s2[100]=" ";
    cout<<"Vvedite stroku: ";
    cin>>s;
    int d=strlen(s);
    for (int i=0, j=0; i<d; i++, j++)
    {
        if (s[i]=='a')
        {
               --j;
        }
 
                else
        {
            s2[j]=s[i];
        }
    }
    cout<< s2 <<endl;
    //system("pause");
    return 0;
1
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
12.01.2013, 23:40  [ТС]
а если нам например, нужно удалить не один символ
C++
1
if (s[i]=='a'  && s[i+1]=='b')
то что тогда делать писать
C++
1
j-=2
0
ComfyMobile
 Аватар для Nixy
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
12.01.2013, 23:45
да и не забудьте что если вы пишите i+1 то цикл идет до max-1
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
12.01.2013, 23:51
Csacsa, строка не всегда состоит из одного слова. cin же учтет символы до первого пробела. Здесь нужен getline().
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <cstring>
int main()
{
     char str[100];
     std::cin.getline(str,99);
     for (int i=0; str[i]; i++)
          if (str[i]=='a')
              for (int j=i; j<=strlen(str); j++)
                    str[j]=str[j+1];
     std::cout<<str<<'\n';
     return 0;
}
0
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
13.01.2013, 00:13  [ТС]
Цитата Сообщение от Nixy Посмотреть сообщение
да и не забудьте что если вы пишите i+1 то цикл идет до max-1
а в else что=то нужно добавить ?
0
ComfyMobile
 Аватар для Nixy
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
13.01.2013, 00:14
ну а иначе остается как было
0
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
13.01.2013, 00:27  [ТС]
Цитата Сообщение от Nixy Посмотреть сообщение
ну а иначе остается как было
а что именно нужно дописать?
0
ComfyMobile
 Аватар для Nixy
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
13.01.2013, 01:16
C++
1
2
3
4
5
6
7
8
9
if (s[i]=='a')
        {
               --j;
        }
 
                else
        {
            s2[j]=s[i];
        }
вот такое было условие
0
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
13.01.2013, 01:24  [ТС]
Цитата Сообщение от Nixy Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
if (s[i]=='a')
        {
               --j;
        }
 
                else
        {
            s2[j]=s[i];
        }
вот такое было условие
это я поняла всё отлично работает, но если нужно удалить "ab", то как писать ?
0
97 / 71 / 5
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
13.01.2013, 01:34
ab -это две буквы подряд или удалять и а и б?
0
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
13.01.2013, 01:37  [ТС]
Цитата Сообщение от Саня gamer Посмотреть сообщение
ab -это две буквы подряд или удалять и а и б?
две подряд.
C++
1
s[i]=='a' && s[i+1]=='b'
0
97 / 71 / 5
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
13.01.2013, 01:50
гдето так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for (int i=0, j=0; i<d; i++, j++)
    {
        if (s[i]=='a' && s[i+1]=='b')
        {
            j-=2;
        }
        if (s[i]=='a')
        {
               --j;
        }
 
                else
        {
            s2[j]=s[i];
        }
}
Добавлено через 9 минут
или а не нада удалять, а удалять только аб?
0
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
13.01.2013, 01:55  [ТС]
только ab
0
97 / 71 / 5
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
13.01.2013, 02:06
оно?
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
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
    char s[100], s2[100]=" ";
    cout<<"Vvedite stroku: ";
    cin>>s;
    int d=strlen(s);
    for (int i=0, j=0; i<d; i++, j++)
    {
        if (s[i]=='a' && s[i+1]=='b')
        {
            j-=2;
        }
                else
        {
            s2[j]=s[i];
        }
    }
    cout<< s2 <<endl;
    //system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.01.2013, 02:06
Помогаю со студенческими работами здесь

Найти индекс первого вхождения символа в строке, удалить из строки другой символ по индексу
1. Дано предложение, в котором имеется несколько букв «е». Найти порядковый номер первой из них. 2.Дано слово. Удалить из него букву под...

Удалить слова и символ пробела, встречающиеся подряд более, чем один раз. Не могу найти ошибку
Вот задание: Повтор слов. В текстовое поле пользователь вводит строку, состоящую из слов, разделенных любым количеством пробелов и знаков...

Строка: Как удалить начальный символ в строке и добавить тот же символ (который удалили) в конец строки?
Как удалить начальный символ в строке и добавить тот же символ (который удалили) в конец строки? Т.е есть строка 1234567890 из нее...

Из строк, которые содержат символ '1' или '2', удалить первый встречающийся в строке символ, равный латинской букве 'a'
Дана матрица размером 4×3, элементами которой являются строки. Необходимо в системе Турбо-Паскаль написать программу, которая выполняет...

В строке заменить символ 'a' на 'A' и удалить символ 'b'
Приведённый ниже код удаляет из ведённой с клавиатуры строки пробелы, все строчные символы &quot;а&quot; заменяет на прописные...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru