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

Найти ошибку - C++

Восстановить пароль Регистрация
 
Predvestnik
 Аватар для Predvestnik
7 / 6 / 2
Регистрация: 09.10.2010
Сообщений: 192
16.01.2011, 13:38     Найти ошибку #1
При компиляции ошибок не выдаёт, но когда запускаю программу она вылетает

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 "stdafx.h"
#include <conio.h>
#include <math.h>
#include <string.h>
 
void main()
{
 
    int i;
    char *st;
    printf("Vvedite stroku simvolov:\n");
    scanf("%s",st);
    printf("\nIshodnaja stroka:\n%s\n",st);
    for(i=0;i<strlen(st)-1;i++);
    {
        if ((*(st+i)=='A')&&(*(st+i+1)=='B'))
        {
            st[i]='C';
        }
    
    }
    printf("\nNovaja stroka:\n%s\n",st);
    getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
16.01.2011, 13:40     Найти ошибку #2
Цитата Сообщение от Predvestnik Посмотреть сообщение
scanf("%s",st);
C
1
scanf("%s",&st);
vippi07
26 / 23 / 1
Регистрация: 01.11.2009
Сообщений: 134
16.01.2011, 13:41     Найти ошибку #3
а что должна делать программа?
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
16.01.2011, 13:48     Найти ошибку #4
Цитата Сообщение от Predvestnik Посмотреть сообщение
char *st;
C
1
char st[256];
TonyKing
 Аватар для TonyKing
0 / 0 / 0
Регистрация: 16.01.2011
Сообщений: 14
16.01.2011, 13:49     Найти ошибку #5
Ошибся)
Predvestnik
 Аватар для Predvestnik
7 / 6 / 2
Регистрация: 09.10.2010
Сообщений: 192
16.01.2011, 13:49  [ТС]     Найти ошибку #6
MILAN всё равно тот же результат.

Программа должна заменять все пары АВ на С.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
16.01.2011, 14:04     Найти ошибку #7
Predvestnik, после for уберите ';'!!!
Predvestnik
 Аватар для Predvestnik
7 / 6 / 2
Регистрация: 09.10.2010
Сообщений: 192
16.01.2011, 14:23  [ТС]     Найти ошибку #8
Да не заметил сначала, теперь программа запускается, но вот вопрос, как удалить из строки символ st[i+1]

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
#include "stdafx.h"
#include <conio.h>
#include <math.h>
#include <string.h>
 
void main()
{
 
    int i,k=0,t=1;
    char st[16]="";
    printf("Vvedite stroku simvolov:\n");
    scanf("%s",st);
    printf("\nIshodnaja stroka:\n%s\n",&st);
    for(i=0;i<16;i++)
    {
        if ((st[i]=='A')&&(st[i+1]=='B'))
        {
            st[i]='C';
                        
        }
    
    }
    printf("\nNovaja stroka:\n%s\n",st);
    getch();
}
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
16.01.2011, 14:47     Найти ошибку #9
Predvestnik, как вариант

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
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <string.h>
 
void main()
{
 
        char st[256];
        printf("Vvedite stroku simvolov:\n");
        scanf("%s",&st);
        printf("\nIshodnaja stroka:\n%s",st);
        printf("\nResult\n");
        for(int i=0; i<strlen(st); i++)
        {
                if ((*(st+i)=='A')&& (*(st+i+1)=='B'))
                {
                        *(st+i)='C';
          printf("%c",*(st+i));
          i++;
 
                        
                }
        else
        {
                   printf("%c",*(st+i));
        }
    
        }
       getch();
}
Predvestnik
 Аватар для Predvestnik
7 / 6 / 2
Регистрация: 09.10.2010
Сообщений: 192
16.01.2011, 14:57  [ТС]     Найти ошибку #10
Спасибо, и если не трудно напишите пожалуйста что в цикле что к чему, а то я чёто не пойму.
P.S прошу прощения за тупые вопросы, учу С второй день только.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
16.01.2011, 15:07     Найти ошибку #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 for(int i=0; i<strlen(st); i++)
        {
                if ((*(st+i)=='A')&& (*(st+i+1)=='B')) // если втсречаются подряд AB
                {
                        *(st+i)='C'; // символ i-тый меняем на С
                  printf("%c",*(st+i)); // выводим i-тый  символ 
                  i++; // инкриментируем i (для того, что бы пропустить символ В)
                                                
                }
            else  // иначе
            {
                   printf("%c",*(st+i)); выводим i-тый символ
            }
    
        }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2011, 15:17     Найти ошибку
Еще ссылки по теме:

C++ Найти сумму первых n-четных натуральных чисел (найти ошибку)
Найти ошибку C++
C++ Задача из Златопольского: "Найти числа с известным количеством делителей". Не могу найти ошибку

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

Или воспользуйтесь поиском по форуму:
Predvestnik
 Аватар для Predvestnik
7 / 6 / 2
Регистрация: 09.10.2010
Сообщений: 192
16.01.2011, 15:17  [ТС]     Найти ошибку #12
Всё так просто, а сразу и непонятно. Спасибо большое.
Yandex
Объявления
16.01.2011, 15:17     Найти ошибку
Ответ Создать тему
Опции темы

Текущее время: 16:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru