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

Помогите с задачей или подскажите как ее можно реализовать!!! - C++

Восстановить пароль Регистрация
 
Витaлиk
1 / 1 / 0
Регистрация: 25.10.2011
Сообщений: 49
08.11.2011, 01:13     Помогите с задачей или подскажите как ее можно реализовать!!! #1
Вводишь строку (типа char). а программа выводит все слова строки у который определенный символ находится на определенной позиции. Символ и позицию вводит пользователь!!!

Добавлено через 4 часа 35 минут
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
73
74
75
76
77
78
// bsu 8.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <windows.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{   
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    const int n=255;
    const int m=255;
    const int k=255;
    for( ; ; )
    {
        cin.sync();
        char string[n];
        char Sumvol[m] ;
        char St0[k];
        int Pos=0;
        int L0=0;
        Sumvol[m]=' ';
        string[n]=' ';
        St0[k]=' ';
        cout<<"Введіть свій рядок: \n";
        cin.getline(string,n);
        cout<<"Введите символ: ";
        cin>>Sumvol;
        cout<<"Введите позицию символа: ";
        cin>>Pos;
        
    
        cout<<"Ваш рядок: "<<string<<"\nУ ньому "<<strlen(string)<<" символів.\n";
        cout<<"Слова с символом "<<Sumvol<<" на позиции "<<Pos<<" :"<<endl;
 
        for (int i=0; i<strlen(string); i++)
    {
       if (string[i]==' ')
       {
           St0[i]+=string[i];
           if (strlen(St0)!=0)
           {
               L0=strlen(St0);
               if (Pos<L0)
               {
                   if (St0[Pos]==Sumvol[0])
                  {
                     cout<<St0<<endl;
                  }
               }
               St0 [i]=' ' ;
            }
       }
 
        cout<<"Ви бажаете запустити програму ще раз? (Y / N)\n";
        char o;
        cin>>o;
        switch (o)
        {
            case 'Y':
            case 'y':break;
            case 'N':
            case 'n': return 0; break;      
        }
        system("cls");
 
}
    system("pause");
    return 0;
}
 
}

Может ктото сможет довести до ума. какую функцию работы со строками здесь лучше использовать??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2011, 01:13     Помогите с задачей или подскажите как ее можно реализовать!!!
Посмотрите здесь:

помогите с задачей в С++ C++
Помогите с задачей на с++ C++
C++ помогите с задачей
Помогите с задачей C++
C++ Помогите с задачей
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
08.11.2011, 01:15     Помогите с задачей или подскажите как ее можно реализовать!!! #2
Цитата Сообщение от Витaлиk Посмотреть сообщение
какую функцию работы со строками здесь лучше использовать??
strtok
Витaлиk
1 / 1 / 0
Регистрация: 25.10.2011
Сообщений: 49
08.11.2011, 01:56  [ТС]     Помогите с задачей или подскажите как ее можно реализовать!!! #3
я как не заморачиваюсь все ровно не работает. в С++ недавно. если можно подроьнее что бы понятнее было
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
08.11.2011, 02:13     Помогите с задачей или подскажите как ее можно реализовать!!! #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
25
#include <stdio.h>
#include <string.h>
 
#define DELIM " .,:;\n\t?!(){}"
#define MAXLINE 1000
 
int main()
{
    char line[MAXLINE], *p, c;
    int pos;
 
    while (printf("enter a line:\n") > 0
        && fgets(line, MAXLINE, stdin)
        && *line != '\n') {
        printf("enter a character and a position:\n");
        scanf("%c %d", &c, &pos);
        getchar(); /* skip newline */
        for (p = strtok(line, DELIM);
            p != NULL;
            p = strtok(NULL, DELIM))
            if (pos > 0 && pos <= strlen(p) && p[pos-1] == c)
                printf("%s\n", p);
    }
    return 0;
}
Витaлиk
1 / 1 / 0
Регистрация: 25.10.2011
Сообщений: 49
08.11.2011, 17:23  [ТС]     Помогите с задачей или подскажите как ее можно реализовать!!! #5
можешь поставить в проге комментарии что бы я понятнее было
Витaлиk
1 / 1 / 0
Регистрация: 25.10.2011
Сообщений: 49
10.11.2011, 18:24  [ТС]     Помогите с задачей или подскажите как ее можно реализовать!!! #6
я вроде разобрался. все ок
Yandex
Объявления
10.11.2011, 18:24     Помогите с задачей или подскажите как ее можно реализовать!!!
Ответ Создать тему
Опции темы

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