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

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

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

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

26.01.2012, 21:17. Просмотров 461. Ответов 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 должно быть прописано что бы пользователь вводил строку с пробелами

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

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

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

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

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

Работа со строками - C++
Всем доброго времени суток! Я учу С++ (в вузе) вроде всё делал сам но вот столкнулся с проблемой которую уже долго не магу решить:( ...

Работа со строками - C++
Всем доброго времени суток! Нужна ваша помощь вот с такой задачкой. Я ввожу с клавы какую-нить строку(ну эт я знаю как написать). далее...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1744 / 1087 / 71
Регистрация: 13.09.2011
Сообщений: 3,115
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
Псевдослучайный
1744 / 1087 / 71
Регистрация: 13.09.2011
Сообщений: 3,115
26.01.2012, 21:42     Все та же работа со строками (ошибка) #4
Да.

Не по теме:

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

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

Добавлено через 10 минут
может кто поконкретнее показать место вставки вызова функции и как выглядит
NoMasters
Псевдослучайный
1744 / 1087 / 71
Регистрация: 13.09.2011
Сообщений: 3,115
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
Псевдослучайный
1744 / 1087 / 71
Регистрация: 13.09.2011
Сообщений: 3,115
26.01.2012, 22:13     Все та же работа со строками (ошибка) #8
Вынеси объявление arr в тело main(). Никто ей не передаст такой массив.

Не по теме:

upd: опоздал

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

Работа со строками - C++
Всем доброго времени суток. Я собрался поступать (в свои-то 22, года, балбес), и сдаю ЕГЭ по информатике. Все решаю более-менее в...

Работа со строками - C++
Подсчитать количество вхождений слова «мама» в строку и вывести номера первых позиций этих вхождений. Если этого слова в строке нет, то...

Работа со строками - C++
Товарищи, такая вот проблема. Есть задача. Прочитать строки из файла, а потом записать их следующим образом. Первую оставить, вторую...

Работа со строками - C++
Всем привет. Есть такой код void makeStr() { std::string testStr = &quot;Take String&quot;; char *ch_arr =...


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

Или воспользуйтесь поиском по форуму:
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     Все та же работа со строками (ошибка)
Ответ Создать тему
Опции темы

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