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

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

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

Ошибка сегментации при записи строки - C++

11.11.2011, 18:51. Просмотров 586. Ответов 7
Метки нет (Все метки)

Доброго времени суток уважаемые форумчане!Помогоите исправить ошибку.
Начну с условия задания, которое я пытаюсь исполнить:

270. Даны символы S1,S2… .Известно, что символ S1 отличен от пробела и что среди S2,S3 ,…. имеется хотя бы один пробел. Рассматриваются S1, ...,Sn —символы, предшествующие первому пробелу (n заранее неизвестно). Преобразовать последовательность S1, ...,Sn удалив из каждой группы цифр, которой не предшествует точка, все начальные нули (кроме последнего, ели за ним идет точка).

Мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#include <string.h>
int main(){
    int i,l,k=0;
    char a[80];
    char b[80];
   
    gets(a);
    
    for(i=0;a[i]!=' ';i++)
   {for(i=0;a[i]!='.';i++)
   if(a[i]!=0){
      b[k]=a[i];  // ОШИБКА УКАЗЫВАЕТ СЮДА
   k++;
   }}
    puts(b);
    getch();
    return 0;}

В чем собственно трабл - при отладке получаю ошибку сегментации указывающую на b[k]=a[i];. Естественно программа не работает.... (компилятор Dev c++ 4.9..)
Что в этом коде можно подправить, или вобще как реализовать задание?
Заранее огромнейшее спасибо всем откликнувшимся!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2011, 18:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка сегментации при записи строки (C++):

Ошибка сегментации при работе со строками - C++
Задача: Дан файл содержащий строки вещественных чисел. Вычислить минимум и максимум в каждой строке. Результат записать в файл. ...

Ошибка сегментации при срабатывании деструктора - C++
Всем привет. Помогите, пожалуйста, разобраться с деструкторами. Суть проблемы заключается вот в чем: есть класс MyClass1 и AnotherClass,...

При отладке выдается ошибка сегментации - C++
Всем привет! :) У меня такая проблема: программа по численным методам (кусок кода - дифференциальная прогонка), pu - массив 101 на 101,...

Ошибка сегментации при обращении к данным контейнера - C++
Вот такой вопрос почему ошибка сигментации возникла не пойму. Задание: Биолог изучает размножение бактерий. Каждый час количество...

Ошибка при посимвольной записи из строки char в строку string - C++
Это фрагмент конструктора класса: ifstream fin(&quot;client.txt&quot;); const int n = 80; char buf; fin.getline(buf,...

Ошибка сегментации при освобождении памяти - C++
Вот в упор не понимаю, почему программа вылетает уже на завершающем этапе. Пожалуйста, посмотрите, что не так // для тестирования ...

7
odip
Эксперт С++
7157 / 3219 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
11.11.2011, 23:15 #2
Какую строку вводишь в программу ?
Пройди в отладчике программу и все станет ясно
0
VanDro
0 / 0 / 0
Регистрация: 15.09.2011
Сообщений: 14
11.11.2011, 23:22  [ТС] #3
Ввожу любую строку... результ один и тот.... Откладка указывает ошибку сегментации, но как ее исправить...
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
12.11.2011, 09:10 #4
циклы нужно делать с учётом нуль-символа в конце
1
VanDro
0 / 0 / 0
Регистрация: 15.09.2011
Сообщений: 14
12.11.2011, 14:00  [ТС] #5
Туплю...Всмысле, с учетом нуль символа..... приписать в конец каждой строки \0 ?

Добавлено через 1 час 9 минут
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 <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#include <string.h>
int main(){
    int i,l,k=0;
    char a[BUFSIZ] = {'\0'};
    char b[BUFSIZ] = {'\0'};
    char *p=b;
   
    gets(a);
    a[0]='1';
    for(i=0;a[i]!=' ';i++){
  
    if(a[i]!='0'){
       *p++=a[i];
           }}
       
    puts(b);
    getch();
    return 0;}
Вот блин!! Ошибку сегментации решил... Поперло по 8 или 13 раз выводить один и тот символ))
Поколупал еще - нули не убирает!
Зае...Задолбался...
Смотрю - а у меня в if ноль не в одинарных кавычках был...!

Теперь нужно добавить обработку до точки....
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
12.11.2011, 15:03 #6
C++
1
    for (i = 0; a[i] != ' ' && a[i] != '\0'; i++) {
1
VanDro
0 / 0 / 0
Регистрация: 15.09.2011
Сообщений: 14
12.11.2011, 19:37  [ТС] #7
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
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#include <string.h>
int main()
{
    int i,l,k=0,j=0,e;
    char a[BUFSIZ] = {'\0'};
    char b[BUFSIZ] = {'\0'};
    char *p=b;
   
    gets(a);
    a[0]!=' ';
    
    for (i=0;a[i]!=' '&&a[i]!='\0';i++) 
{ for(e=0;a[e]!='.';e++)
    j=e;
   
    if(a[i]!='0'&&i<j-1)
    *p++=a[i];
 
    if(i>=j)
    *p++=a[i];
                      }          
        
    puts(b);
    getch();
    return 0;}
Готовая программа.... мож кому пригодится...
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
13.11.2011, 02:17 #8
внутренний цикл тоже
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2011, 02:17
Привет! Вот еще темы с ответами:

ошибка сегментации - C++
где может быть ошибка?

ошибка сегментации - C++
Всем привет! Я никогда не программировал, а тут решил склепать небольшую программку. Да вот только не могу понять почему выскакивает...

Ошибка сегментации - C++
Здравствуйте, написал программу, запускаю- Windows пишет: &quot;обнаружена ошибка. Приложение будет закрыто&quot;. Ошибка в функции: bool...

Ошибка Сегментации - C++
Всем привет! При выполнении кода вылетает ошибка: &quot;Ваша программа вызвала нарушение доступа(ошибку сегментации)&quot;. Как это...


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

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

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