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

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

Войти
Регистрация
Восстановить пароль
 
 
Csacsa
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
#1

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

12.01.2013, 22:50. Просмотров 511. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2013, 22:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удалить в строке символ "а" (найти ошибку) (C++):

На C++ в строке после символа - "+" поставить символ "*" и посчитать сколько "+" - C++
С++ Мы вводим вручную строку , (через cin &gt;&gt; )программа должна после каждого &quot;+&quot; поставить &quot;*&quot; потом посчитать сколько всего было &quot;+&quot;...

В строке удалить символ "двоеточие" - C++
В строке удалить символ &quot;двоеточие&quot; и подсчитать количество удаленных символов. Сделала на паскале эту задачу. Помогите пожалуйста...

Не могу понять ошибку "C2043: недопустимый break". Задача: найти подстроку в строке - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; using namespace std; int...

В заданной строке подсчитать сколько раз встречается символ "*" и сколько раз символ "+" - C++
Итак, сама задача: В заданной строке подсчитать сколько раз встречается символ &quot;*&quot; и сколько раз символ &quot;+&quot;. Указать смещение каждого...

Сколько раз среди данных символов встречается символ "+" и символ "*" - C++
Сколько раз среди данных символов встречается символ &quot;+&quot; и символ &quot;*&quot;

Дан текст, хранящийся в текстовом файле f, каждый символ которого может быть малой буквой, цифрой или одним из знаков "+", "-", "*". - C++
Дан текст, хранящийся в текстовом файле f, каждый символ которого может быть малой буквой, цифрой или одним из знаков &quot;+&quot;, &quot;-&quot;, &quot;*&quot;. Групой...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
12.01.2013, 23:00 #2
11 строчка переменная и=пустая
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
12.01.2013, 23:03 #3
Цитата Сообщение от Саня gamer Посмотреть сообщение
11 строчка переменная и=пустая
в 11 строке нету переменной и, есть переменная i и она не пустая а заполнена мусором
для ТС a,b = c неэквивалентно a = c , b = c
0
Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
12.01.2013, 23:19 #4
Вроде работает
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
Csacsa
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
12.01.2013, 23:40  [ТС] #5
а если нам например, нужно удалить не один символ
C++
1
if (s[i]=='a'  && s[i+1]=='b')
то что тогда делать писать
C++
1
j-=2
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
12.01.2013, 23:45 #6
да и не забудьте что если вы пишите i+1 то цикл идет до max-1
0
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
12.01.2013, 23:51 #7
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
Csacsa
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
13.01.2013, 00:13  [ТС] #8
Цитата Сообщение от Nixy Посмотреть сообщение
да и не забудьте что если вы пишите i+1 то цикл идет до max-1
а в else что=то нужно добавить ?
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
13.01.2013, 00:14 #9
ну а иначе остается как было
0
Csacsa
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
13.01.2013, 00:27  [ТС] #10
Цитата Сообщение от Nixy Посмотреть сообщение
ну а иначе остается как было
а что именно нужно дописать?
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
13.01.2013, 01:16 #11
C++
1
2
3
4
5
6
7
8
9
if (s[i]=='a')
        {
               --j;
        }
 
                else
        {
            s2[j]=s[i];
        }
вот такое было условие
0
Csacsa
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
13.01.2013, 01:24  [ТС] #12
Цитата Сообщение от Nixy Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
if (s[i]=='a')
        {
               --j;
        }
 
                else
        {
            s2[j]=s[i];
        }
вот такое было условие
это я поняла всё отлично работает, но если нужно удалить "ab", то как писать ?
0
Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
13.01.2013, 01:34 #13
ab -это две буквы подряд или удалять и а и б?
0
Csacsa
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
13.01.2013, 01:37  [ТС] #14
Цитата Сообщение от Саня gamer Посмотреть сообщение
ab -это две буквы подряд или удалять и а и б?
две подряд.
C++
1
s[i]=='a' && s[i+1]=='b'
0
Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
13.01.2013, 01:50 #15
гдето так
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2013, 01:50
Привет! Вот еще темы с ответами:

Не могу убрать ошибку: "error LNK2001: неразрешенный внешний символ" - C++
здравствуйте весь интернет уже облазил , ни где похожего найти не могу . overview.obj : error LNK2001: неразрешенный внешний символ...

Классы.Ключевое слово static - выдает ошибку "неразрешенный внешний символ" - C++
Всем доброго времени суток. Изучаю С++ по Шпаку и по урокам на сайте cppstudio.com, предварительно хорошо ознакомившись с ассемблером... ...

Исправить ошибку "LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup" - C++
#include &quot;stdafx.h&quot; #include &quot;расчет.h&quot; #include &quot;conio.h&quot; #include &lt;windows.h&gt; #include &lt;commctrl.h&gt; #include &lt;iostream&gt; ...

Преобразовать строку, вырезав каждый символ "*" и повторив каждый символ, отличный символ "*" - C++
Здравствуйте,уважаемые форумчане!Помогите пожалуйста с написанием программ-а то завтра сдать уже надо... Препод ставит такие требования: ...


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

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

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