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

Все та же работа со строками (ошибка) - C++

Восстановить пароль Регистрация
 
Manhuntz90
0 / 0 / 0
Регистрация: 12.01.2012
Сообщений: 16
26.01.2012, 21:17     Все та же работа со строками (ошибка) #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
26
27
28
29
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int Proc(char *main)
{
 int i;
    for(i=1;main[i]!=0;i++)
    {
        if(main[i-1]==' ' && (main[i]==' ' || i==1) )
        {
            for(int j=i-1;main[j]!=0;j++)
                main[j]=main[j+1];
            i--;
        }
    }
    if(main[i-1]==' ')main[i-1]=0;
    cout<<main;
    _getch();
    return 0;
}
 
int main(char arr[255])
{
puts("Enter string:");
gets(arr); 
 
}
Вот в этом программном коде при запуске консоль тупо виснет и пишет что прекращена работа и тд не пойму в чем проблемма??Функция Proc удаляет пробелы.а в main должно быть прописано что бы пользователь вводил строку с пробелами

Помогите разобраться почему не работает так как должно быть
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2012, 21:17     Все та же работа со строками (ошибка)
Посмотрите здесь:

работа со строками C++
C++ Работа со строками
Работа со строками. C++
C++ Работа со строками, вылетает ошибка
Работа со строками C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
26.01.2012, 21:19     Все та же работа со строками (ошибка) #2
Proc не вызывается тчк
Manhuntz90
0 / 0 / 0
Регистрация: 12.01.2012
Сообщений: 16
26.01.2012, 21:30  [ТС]     Все та же работа со строками (ошибка) #3
то есть после gets(arr);
должно быть что то типа этого??
Proc(arr)
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
26.01.2012, 21:42     Все та же работа со строками (ошибка) #4
Да.

Не по теме:

Это сообщение не слишком короткое

Manhuntz90
0 / 0 / 0
Регистрация: 12.01.2012
Сообщений: 16
26.01.2012, 21:54  [ТС]     Все та же работа со строками (ошибка) #5
если только Proc(arr) пропсиать то все равно работа программы прекращена из за ошибки

Добавлено через 10 минут
может кто поконкретнее показать место вставки вызова функции и как выглядит
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
26.01.2012, 22:07     Все та же работа со строками (ошибка) #6
Цитата Сообщение от Manhuntz90 Посмотреть сообщение
int main(char arr[255])
Что это? Где ты видел такой прототип main()? А ты туда ещё и пишешь...
Мой libastral нынче что-то косячит, ты хочешь разобраться с ошибкой, пиши полный её текст.
Manhuntz90
0 / 0 / 0
Регистрация: 12.01.2012
Сообщений: 16
26.01.2012, 22:12  [ТС]     Все та же работа со строками (ошибка) #7
ну понимаешь так при компиляции ошибки нету я пишу на dev-cpp под Windows 7 и при заупске программе после ввода строки и нажатия enter программа виснет и пишет что Прекращена работа программы и тд

Добавлено через 3 минуты
Все разобрался спасибо действительно это не правильно main прописан был поставил char до мейна и стало норм все ))..хотя в одном коде я видел что кто то писал так как я и все работало странноо
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
26.01.2012, 22:13     Все та же работа со строками (ошибка) #8
Вынеси объявление arr в тело main(). Никто ей не передаст такой массив.

Не по теме:

upd: опоздал

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2012, 22:43     Все та же работа со строками (ошибка)
Еще ссылки по теме:

Работа со строками: выводит все слова, с четным количеством букв C++
работа со строками, ошибка в коде C++
C++ Из строки получить новую, выбросив все вхождения заданного символа (Работа со строками)

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

Или воспользуйтесь поиском по форуму:
Manhuntz90
0 / 0 / 0
Регистрация: 12.01.2012
Сообщений: 16
26.01.2012, 22:43  [ТС]     Все та же работа со строками (ошибка) #9
я вынес до main и заработало)

Добавлено через 18 минут
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
#include <iostream>
#include <conio.h>
#include <stdio.h> 
#include <stdlib.h> 
using namespace std;
int Proc(char const str[]);
void Proctxt(char const infile[], char const outfile[]);
 
 int main()
{
     char infile[256], outfile[256]; 
     printf("Enter your file name: ");
    gets(infile);
    printf("Enter result file name: ");
    gets(outfile);
    printf("\n");
    Proctxt(infile, outfile);
    printf("\n");
    system("pause");
}
 
int Proc(char *str)
{
 int i;
    for(i=1;str[i]!=0;i++)
    {
        if(str[i-1]==' ' && (str[i]==' ' || i==1) )
        {
            for(int j=i-1;str[j]!=0;j++)
                str[j]=str[j+1];
            i--;
        }
    }
    if(str[i-1]==' ')str[i-1]=0;
    cout<<str;
    _getch();
    return 0;
}
void Proctxt(char const infile[], char const outfile[])
{
    FILE *inf, *outf;                       
    char str[256];                          
    inf = fopen(infile, "r");               
    outf = fopen(outfile, "w");                 
    do{
        fgets(str, 256, inf);
                        
        printf("REWR FILE\n");
        fprintf(outf,str);
                        
    }while(!feof(inf)); 
    fclose(outf);   
    fclose(inf);
}


Вот примерно аналогичная проблемма только ошибки не выводит но ...не могу понять как тут в функции ProcTxt сделать вывод строки из 1го файла последующая её обработка,вывод на экран измененной строки ..и записать в файл измененную ...Я понимаю что тут всего пару строк нужно но не могу понять каких именно

Добавлено через 5 минут
решено добавлением cout<<Proc(str);
Yandex
Объявления
26.01.2012, 22:43     Все та же работа со строками (ошибка)
Ответ Создать тему
Опции темы

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