Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 26.09.2009
Сообщений: 23
1

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

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

Author24 — интернет-сервис помощи студентам
Помогите решить: сколько в символьной строке слов, имеющие в середине слова средний символ(символ который находится в середине слова)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2009, 00:31
Ответы с готовыми решениями:

Скрипт, запрещающий вывод строк с нужным символом
Здравствуйте, я новичек в программировании, по этому хотелось бы помощи :) У меня есть база данных...

Перестановка в конец текста строк с заданным символом
Перестановка в конец текста строк с заданным символом. В программе предусмотреть ввод с терминала...

Подсчитать количество строк начинающихся и заканчивающихся одним символом
Необходимо использовать fopen, fscanf. Благодарю за помощь!

Подсчитать количество строк начинающихся и заканчивающихся одним символом
Здравствуйте! Пожалуйста, помогите написать программу, которая считывает текст из файла и...

29
Эксперт С++
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
26.09.2009, 07:30 2
Приведенный ниже код вычисляет количество слов у которых в середине есть символ который определяет пользователь:
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
#include <Windows.h>
#include <iostream.h>
#include <iomanip>
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    char *str="слово строка олово";// начальная строка
    char c;
    cout<<"Введите символ"<<endl;
    cin>>c;
    int kol_sl=0, j, temp=0;    
    for(j=0; j<=strlen(str); j++)
    {
        if(str[j]==' ' || str[j]=='\0')
        {
            if((j-temp)%2==1 && str[temp+(j-temp)/2]==c)
                kol_sl++;
            temp=j+1;
        }
        
    }
    cout<<"Количество слов с символом '"<<c<<"' в середине: "<<kol_sl<<endl;
    system("pause");
    return 0;
}
Или может быть Вам нужно вывести количество слов у которых есть средний символ (т.е. просто вывести количество слов у которых количество букв нечетное)?
0
0 / 0 / 0
Регистрация: 26.09.2009
Сообщений: 23
26.09.2009, 19:11  [ТС] 3
Да, нужно вывести количество слов у которых есть средний символ (т.е. просто вывести количество слов у которых количество букв нечетное),за ранее спасибо ,если можете решите.
0
Эксперт С++
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
26.09.2009, 19:30 4
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
#include <Windows.h>
#include <iostream.h>
#include <iomanip>
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    char *str="слово строка олово";// начальная строка
    int kol_sl=0, j, temp=0;        
    for(j=0; j<=strlen(str); j++)
    {
        if(str[j]==' ' || str[j]=='\0')
        {
            if((j-temp)%2==1)
                kol_sl++;
                temp=j+1;
        }
                
    }
    cout<<"Количество слов со средним символом: "<<kol_sl<<endl;
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 26.09.2009
Сообщений: 23
26.09.2009, 20:08  [ТС] 5
кажется то ,что нужно ,большое вам спасибо, выручили.
0
0 / 0 / 0
Регистрация: 26.09.2009
Сообщений: 23
27.09.2009, 15:22  [ТС] 6
А как можно переделать ,чтоб в запущенной проге набирать слова и она выщитывала сразу сколько слов с средним символом (т. е. нечетные слова)
0
Эксперт С++
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
27.09.2009, 19:31 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 <iostream.>
#include <conio.h>
#include <math.h>
#include <Windows.h>
#include <string>
#include <process.h>
using namespace std ;
int main ()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<"Введите строку\n";
    string s1;
    int a, j, kol_sl=0, temp=0;
    getline(cin,s1, '\n'); 
    a=s1.length(); 
    for(j=0;j<=a; j++)
    {
        if(s1[j]==' ' || s1[j]=='\0' )
        {
            if((j-temp)%2==1)
                kol_sl++;
            temp=j+1;
        }
                
    }
    cout<<"Количество слов со средним символом: "<<kol_sl<<endl;
 getch ();
 return 0; 
}
1
0 / 0 / 0
Регистрация: 26.09.2009
Сообщений: 23
28.09.2009, 01:19  [ТС] 8
Большое вам спасибо !!!вы очень мне помогли.
0
0 / 0 / 0
Регистрация: 26.09.2009
Сообщений: 23
29.09.2009, 11:28  [ТС] 9
В программировании ,я пока чайник ,преподаватель сказал ,чтоб не со string делали ,а типа такого кода ,мне помогли написать, но программа выдает много ошибо,к немогли б мне помоч помоему вышеуказанному заданию.
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
#include<iostream.h>
#include<stdio.h>
#include<string.h>
void main()
 
     char*zod_mas[10]
     char*zodis=strtok(san,sak);
     zod_mas[0]=zodis
     int i=1
     while(zodis!=NULL)
     {zodis=strtok(NULL,SEP);
     i++
     zod_mas[i]=zodis;
     }
     char*zod_max=zod_max
     
     int n_zod_max=strlen(zod_max);
     char_chn=zod_max[n]
     char_chn=zod_max[n_zod_max/2]
     char*zod_max[10];
     
     int nx=0; int nzod;
     
     for(int j=0;j<i;j++)
    {nzod=strlen(zod_max[j];
     for(int k=0;k<nzod;k++)
     {if(zod_max[j][k]=chn) 
      if(zod_max[j][k]=chn) break;
 
      }
      }
0
Псевдо программист
192 / 113 / 37
Регистрация: 19.09.2009
Сообщений: 303
29.09.2009, 11:52 10
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
#include "stdafx.h"
#include <iostream.>
using namespace std ;
int main ()
{
    setlocale(LC_ALL, "Russian");
    cout<<"Введите строку\n";
    char s1[80];
    int a, j, kol_sl=0, temp=0;
    cin.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;
        }
                
    }
    cout<<"Количество слов со средним символом: "<<kol_sl<<endl;
    system("pause");
    return 0; 
}
1
0 / 0 / 0
Регистрация: 26.09.2009
Сообщений: 23
09.10.2009, 15:57  [ТС] 11
Большое спасибо за программу!!! А как зделать ,чтоб при запуске проги ввод данных и результат выводился в текстовом файле? Я вводила FILE *out = fopen( ".txt", "a" ); но результата не получала.
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
09.10.2009, 15:59 12
Цитата Сообщение от zoja1739 Посмотреть сообщение
Большое спасибо за программу!!! А как зделать ,чтоб при запуске проги ввод данных и результат выводился в текстовом файле? Я вводила FILE *out = fopen( ".txt", "a" ); но результата не получала.
C
1
FILE *out = fopen( "FILE_NAME.txt", "a" );
0
0 / 0 / 0
Регистрация: 26.09.2009
Сообщений: 23
09.10.2009, 16:38  [ТС] 13
Ничего у меня невыходит. А немогли б вы написать полностью код ,а то я пока еще чайник в етом.
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
09.10.2009, 16:54 14
я не совсем в теме, в общем программа считавает строчку из файла 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
//#include "stdafx.h"
#include <iostream>
#include <fstream>
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; 
}
0
0 / 0 / 0
Регистрация: 26.09.2009
Сообщений: 23
09.10.2009, 18:08  [ТС] 15
у меня прога DEV++ выводит ERROR: not file:input.txt
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
09.10.2009, 18:11 16
Цитата Сообщение от zoja1739 Посмотреть сообщение
у меня прога DEV++ выводит ERROR: not file:input.txt
всё правильно, ты его создай в тойже папке где компилишь исходник или путь пропиши и будет тебе счастье.
0
0 / 0 / 0
Регистрация: 26.09.2009
Сообщений: 23
09.10.2009, 19:58  [ТС] 17
или я полный чайник она у меня вообще незапускается
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
09.10.2009, 20:08 18
в папку с исходником помести фаил input.txt (со тестовой строкой). скомпили исходник (окно появиться и исчезнет). в папке с фаилом инпут и исходником появиться ещё один output.txt с результатом.
1
0 / 0 / 0
Регистрация: 26.09.2009
Сообщений: 23
10.10.2009, 18:16  [ТС] 19
А проще код нельзя написать ,чтоб прога работала и выводила в файле результат сразу ,мне просто еще ето очень сложно.
0
Эксперт С++
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
10.10.2009, 19:44 20
zoja1739,
TanT все правильно пишет. Я наверное понял в чем у Вас сложности. Сделайте тогда так:
1. Строки 7 и 8 в коде TanT
Цитата Сообщение от TanT Посмотреть сообщение
char *File="input.txt"; // исходный фаил
char *File_out="output.txt"; // фаил результата
замените на:
C++
1
2
        char *File="c:\\input.txt";                                  // èñõîäíûé ôàèë 
        char *File_out="c:\\output.txt";     // ôàèë ðåçóëüòàòà
2. Войдите на своем компьютере в папку "локальный диск С:". На пустом месте в этой папке нажмите правую кнопку мыши, выберите подпункт "создать", затем выберите подпункт "текстовый документ" и нажмите левую кнопку мыши. У Вас будет создан на диске "С:" текстовый файл "Текстовый документ.txt". Этот файл надо переименовать в "input.txt". Затем открываете этот файл и пишите в нем исходные слова.
3. Запускаете программу. После закрытия программы на диске "С:" у Вас появится файл "output.txt". Открываете его и там будут результаты.
0
10.10.2009, 19:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2009, 19:44
Помогаю со студенческими работами здесь

Найти количество строк в текстовом файле, оканчивающихся заданным символом
1.Дан текстовый файл. Найти количество строк в нём, оканчивающихся заданным символом.

Найдите количество строк файла, начинающихся и заканчивающихся одинаковым символом
Дан текстовый файл содержащий строки, найдите количество строк начинающихся и заканчивающихся...

Через каждые 15 строк создавать пустую строку с любым символом
Пожалуйста подскажите как сделать bat, чтобы он в текстовом файлике (большом) через каждые 15 строк...

Подсчитать количество строк, которые: начинаются и оканчиваются одним и тем же символом
Уважаемые форумчане! прошу помощи !! вот такое задание.. Используйте линейные списки для хранения...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru