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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
zoja1739
0 / 0 / 0
Регистрация: 26.09.2009
Сообщений: 23
#1

Задача с символом строк - C++

26.09.2009, 00:31. Просмотров 1711. Ответов 29
Метки нет (Все метки)

Помогите решить: сколько в символьной строке слов, имеющие в середине слова средний символ(символ который находится в середине слова)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zoja1739
0 / 0 / 0
Регистрация: 26.09.2009
Сообщений: 23
10.10.2009, 21:34  [ТС]     Задача с символом строк #21
все зделала в текстовом output выводит ERROR: not file:input.txt
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
10.10.2009, 21:43     Задача с символом строк #22
Делать надо файл "input.txt" и в нем писать слова. А файл "output.txt" с результатом, программа сделает сама.
zoja1739
0 / 0 / 0
Регистрация: 26.09.2009
Сообщений: 23
10.10.2009, 22:27  [ТС]     Задача с символом строк #23
у меня выводит результат с 12 строки прграммного кода
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
10.10.2009, 22:30     Задача с символом строк #24
Можно весь код посмотреть?
zoja1739
0 / 0 / 0
Регистрация: 26.09.2009
Сообщений: 23
10.10.2009, 23:31  [ТС]     Задача с символом строк #25
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
//#include "stdafx.h"
#include <iostream.h>
#include <fstream.h>
using namespace std ;
int main ()
{
        char *File="input.txt";                                  // èñõîäГ*ûé ГґГ*ГЁГ« 
        char *File_out="output.txt";     // ГґГ*ГЁГ« ðåçóëüòГ*ГІГ* 
        setlocale(LC_ALL, "Russian");
        
        ofstream f_out; f_out.open(File_out);
        ifstream f(File);
        
 
        if (!f.is_open())       // ïðîâåðêГ* Г*Г*ëè÷èÿ ГґГ*éëГ* Г± Г¤Г*Г*Г*ûìè Г® êëèåГ*ГІГ*Гµ
        { f_out<<"ERROR: not file:"<<File<<endl; 
        }
        else
        {
                char s1[80];
                int a, j, kol_sl=0, temp=0;
                while(!f.eof())
                {
                        kol_sl=0; temp=0;
                        f.getline(s1, 80); 
                        a=strlen(s1); 
                        for(j=0;j<=a; j++)
                        {
                                if(s1[j]==' ' || s1[j]=='\0' )
                                {
                                        if((j-temp)%2==1)
                                                kol_sl++;
                                        temp=j+1;
                                }
                        }
                        f_out<<"Êîëè÷åñòâî ñëîâ Г±Г® ñðåäГ*ГЁГ¬ ñèìâîëîì: "<<kol_sl<<endl;
                }
        }
 
        f.close();
        system("pause");
        return 0; 
}
Добавлено через 1 минуту
выводит строку с кода ERROR: not file:input.txt
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
11.10.2009, 06:09     Задача с символом строк #26
Чувствую что у меня последний шанс...
Ладно, замените Ваш код на код записанный ниже:
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
#include <iostream>
#include <fstream.h>
using namespace std ;
int main ()
{
        char *File="c:\\input.txt";                                  // исходный фаил 
        char *File_out="c:\\output.txt";     // фаил результата 
        setlocale(LC_ALL, "Russian");
        
        ofstream f_out; f_out.open(File_out);
        ifstream f(File);
        
 
        if (!f.is_open())       // ïðîâåðêГ* Г*Г*ëè÷èÿ ГґГ*éëГ* Г± Г¤Г*Г*Г*ûìè Г® êëèåГ*ГІГ*Гµ
        { f_out<<"ERROR: not file:"<<File<<endl; 
        }
        else
        {
                char s1[80];
                int a, j, kol_sl=0, temp=0;
                while(!f.eof())
                {
                        kol_sl=0; temp=0;
                        f.getline(s1, 80); 
                        a=strlen(s1); 
                        for(j=0;j<=a; j++)
                        {
                                if(s1[j]==' ' || s1[j]=='\0' )
                                {
                                        if((j-temp)%2==1)
                                                kol_sl++;
                                        temp=j+1;
                                }
                        }
                        f_out<<"Êîëè÷åñòâî ñëîâ Г±Г® ñðåäГ*ГЁГ¬ ñèìâîëîì: "<<kol_sl<<endl;
                }
        }
 
        f.close();
        system("pause");
        return 0; 
}
После этого на Вашем компьютере, на жестком диске (C:) создайте файл "input.txt". В нем напишите любые слова. Закройте файл, запустите программу. На Вашем жестком диске (C:) будет создан файл "output.txt". Откройте его и увидите результат.
zoja1739
0 / 0 / 0
Регистрация: 26.09.2009
Сообщений: 23
11.10.2009, 17:54  [ТС]     Задача с символом строк #27
Урааааааааааааааааааааааааааааааааа !!!!!!!!!!!!!!!!!!!спасибо вам большое заработало !!!!!!!!!!!!!!!!!!!!!
zoja1739
0 / 0 / 0
Регистрация: 26.09.2009
Сообщений: 23
13.10.2009, 15:35  [ТС]     Задача с символом строк #28
Здрасте ето опять я ,в общем учитель незащитал задание ,немного подругому звучит, в общем трудно разобраться, вчера только поняла ,что от меня требуют :cолько в символьной строке есть слов которая имеет в среднем слове средний символ ,например "олово" "солдат" "прога" "символ" "тетрадь" ), у нас среднее слово ("прога") и средний символ в слове("o") , так нужно найти сколько слов в строке с буквой ("о"), у нас "четыре" слова с буквой "о" так и результат должен быть "4", если вам нетрудно ,можете переделать код в двух программах ,чтоб результат на экране выводился и второе задание с файлами ,заранее вам спасибо ,а то у меня ничего неполучается .
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
13.10.2009, 17:36     Задача с символом строк #29
Немного переделал последнюю версию. С файлами "input.txt" и "output.txt" делайте тоже самое как и последний раз.
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <iostream.h>
#include <fstream.h>
#include <process.h>
#include <windows.h>
int main ()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    char *File="c:\\input.txt";                                  // èñõîäГ*ûé ГґГ*ГЁГ« 
    char *File_out="c:\\output.txt";     // ГґГ*ГЁГ« ðåçóëüòГ*ГІГ* 
     
    ofstream f_out; f_out.open(File_out);
    ifstream f(File);
    if (!f.is_open())       // ïðîâåðêГ* Г*Г*ëè÷èÿ ГґГ*éëГ* Г± Г¤Г*Г*Г*ûìè Г® êëèåГ*ГІГ*Гµ
    {
        f_out<<"ERROR: not file:"<<File<<endl; 
    }
    else
    {
        char s1[80];
        int a, j, kol_sl=0, temp=0, i1=0, i2;
        while(!f.eof())
        {
            kol_sl=0;
            f.getline(s1, 80); 
            a=strlen(s1); 
            for(j=0;j<=a; j++)
                if(s1[j]==' ')
                    kol_sl++;
            if(kol_sl%2==1)
            {
                cout<<"ГЌГҐГІ ñðåäГ*ГҐГЈГ® ñëîâГ*"<<endl;
                exit(1);
            }
        }
        for(j=0;j<=a; j++)
        {
            if(s1[j]==' ')
                temp++; 
            if(s1[j]==' ' && i1!=0)
            {
                i2=j;
                break;
            }
            if(temp==kol_sl/2 && s1[j]==' ')
                i1=j;
            
        }
        if((i2-i1)%2==1)
        {
            cout<<"Г‚ ñðåäГ*ГҐГ¬ ñëîâå Г*ГҐГІ ñðåäГ*ГҐГ© ГЎГіГЄГўГ»"<<endl;
            exit(1);
        }
        temp=0;
        kol_sl=0;
        for(j=0;j<=a; j++)
        {
            if(s1[j]==s1[i1+(i2-i1)/2] && temp==0)
            {
                kol_sl++;
                temp=1;
            }
            if(s1[j]==' ')
                temp=0;
        }
        f_out<<"Êîëè÷åñòâî ñëîâ Г± ñèìâîëîì ГЄГ*ГЄ Гі ñðåäГ*ГҐГЈГ® ñèìâîëГ* ñðåäГ*ГҐГЈГ® ñëîâГ*: "<<kol_sl<<endl;       
    }
     
     f.close();
     system("pause");
     return 0; 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2009, 18:03     Задача с символом строк
Еще ссылки по теме:

C++ задача на обработку строк, С++)заранее благодарю
Задача на обработку символьных строк (сравнить введённую строку с шаблоном) C++
Задача на матрицы. Найти суммы элементов всех четных и нечётных строк и столбцов C++
C++ Описать функцию для подсчета числа строк, начинающихся и заканчива- ющихся одним и тем же символом
Реализовать парсер строк (Задача A. Стартап) C++

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

Или воспользуйтесь поиском по форуму:
zoja1739
0 / 0 / 0
Регистрация: 26.09.2009
Сообщений: 23
16.10.2009, 18:03  [ТС]     Задача с символом строк #30
Спасибо большое вам !!!!задача решена.
Yandex
Объявления
16.10.2009, 18:03     Задача с символом строк
Ответ Создать тему
Опции темы

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