Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 12.01.2012
Сообщений: 16
1

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

26.01.2012, 21:17. Просмотров 649. Ответов 8
Метки нет (Все метки)

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 должно быть прописано что бы пользователь вводил строку с пробелами

Помогите разобраться почему не работает так как должно быть
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2012, 21:17
Ответы с готовыми решениями:

работа со строками, ошибка
2.Строка содержит английский текст. Подсчитать количество слов, начинающихся на заданную букву...

Работа со строками. Найти все вхождения строки
Здравствуйте! Попросили написать парсер, который будет проверять количество ссылок на странице....

Работа со строками: убрать из строки все цифры
Дана строка, содержащая латинские буквы и цифры. Необходимо убрать из строки все цифры

Работа со строками, вылетает ошибка
Здравствуйте товарищи! В общем задание такого, посчитать слова в строке, у которых первая и...

8
Псевдослучайный
1936 / 1137 / 96
Регистрация: 13.09.2011
Сообщений: 3,206
26.01.2012, 21:19 2
Proc не вызывается тчк
0
0 / 0 / 0
Регистрация: 12.01.2012
Сообщений: 16
26.01.2012, 21:30  [ТС] 3
то есть после gets(arr);
должно быть что то типа этого??
Proc(arr)
0
Псевдослучайный
1936 / 1137 / 96
Регистрация: 13.09.2011
Сообщений: 3,206
26.01.2012, 21:42 4
Да.

Не по теме:

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

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

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

Добавлено через 3 минуты
Все разобрался спасибо действительно это не правильно main прописан был поставил char до мейна и стало норм все ))..хотя в одном коде я видел что кто то писал так как я и все работало странноо
0
Псевдослучайный
1936 / 1137 / 96
Регистрация: 13.09.2011
Сообщений: 3,206
26.01.2012, 22:13 8
Вынеси объявление arr в тело main(). Никто ей не передаст такой массив.

Не по теме:

upd: опоздал

0
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);
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.01.2012, 22:43

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

работа со строками, ошибка в коде
#include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; class str{ char *a; int n;...

Работа со строками: Вычеркнуть из текста все повторяющиеся слова
Строка должна вводиться с клавиатуры. Полученная строка и другие элементы должны выводиться на...

Работа со строками: выводит все слова, с четным количеством букв
Требуется помощь в написании следующей программы: С клавиатуры вводится текстовая строка....

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

Работа со строками. Как удалить из списка все строки оканчивающиеся на '_Settings'
В поле Memo есть список строк. Как из этого списка удалить строки, которые оканчиваются на на...

Из строки получить новую, выбросив все вхождения заданного символа (Работа со строками)
Доброго времени суток =) Нужна помощь с заданием: &quot;Из заданной строки получить новую, выбросив из...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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