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

swith не работает - C++

Восстановить пароль Регистрация
 
Zheka91
4 / 4 / 1
Регистрация: 22.11.2010
Сообщений: 101
30.03.2011, 19:24     swith не работает #1
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <stdafx.h>
#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <locale>
using namespace std;
 
void zad1()
{
    char s[100], accept[100];
    cout<<"Введите текст: ";
    gets(s);
    cout<<"Введите второй текст: ";
    gets(accept);
    if(strpbrk(s,accept)!=NULL)
    {
        cout<<strpbrk(s,accept);
        cout<<endl<<"количество знаков в первой строке = "<<strlen(s);
        cout<<endl<<"количество знаков от первого встретившегося знака второй строки = "<<strlen(strpbrk(s,accept));
        cout<<endl<<"позиция первого встретившегося знака в первой строке из второй = "<<strlen(s)-strlen(strpbrk(s,accept))+1;
        cout<<endl;
    }
    else cout<<"-1"<<endl;
}
 
void zad2()
{
    char s[100];
    cout<<"Введите текст: ";
    gets(s);
    int vsego=0, zap=0, dot=0, dvo=0, toz=0, i=0, dl;
    dl=strlen(s);
    while(i!=dl)
    {   
        i++;
        if(s[i]=='.')dot++;
        if(s[i]==',')zap++;
        if(s[i]==';')toz++;
        if(s[i]==':')dvo++;
    }
    vsego=dot+zap+toz+dvo;
    cout<<endl<<"Количество точек = "<<dot;
    cout<<endl<<"Количество запятых = "<<zap;
    cout<<endl<<"Количество точек с запятой = "<<toz;
    cout<<endl<<"Количество двоеточий = "<<dvo;
    cout<<endl<<"Количество всего = "<<vsego<<endl;
}
 
void zad3()
{
    char s[100];char *p;
    cout<<"Введите текст: ";
    gets(s);
    cout<<"Введите М: ";
    int M;
    cin>>M;
    p=strtok(s," ");
    while(p!=NULL)
    {
        if(M==(strlen(p)))cout<<endl<<p;    
        p=strtok(NULL," ");
    }
}
 
void zad4()
{
    char s[100];char *end=new char[100];
    cout<<"Введите текст: ";
    gets(s);
    cout<<"Новая строка: ";
    int dl,i,k;
    dl=strlen(s);
    for(i=1,k=0;i<dl;i+=2,k++)
        {end[k]=s[i];}
    for(i=0,k;i<dl;i+=2,k++)
        {end[k]=s[i];}
    end[k]='\0';cout<<end;
}
 
void main()
{
    setlocale(LC_ALL,"rus");
    int A;
    cout<<"1.Составить программу, позволяющую определить позицию первого вхождения в \n заданную строку какого-либо символа из второй заданной строки. Если первая \n строка не содержит ни одного символа, принадлежащего второй строке, \n результатом работы программы является -1."<<endl;
    cout<<"2.Задан текст. Слова в тексте разделяются пробелами либо знаками «,», «:», «;».\n Определить количество знаков пунктуации в заданном тексте."<<endl;
    cout<<"3.Дана строка из отдельных английских слов. Напечатать все слова, \n состоящие из M букв."<<endl;
    cout<<"4.Задана строка символов. Получить новую строку, в которой вначале стоят все \n символы, стоящие на четных местах в исходной строке, а затем – стоящие на \n нечетных."<<endl;
    cout<<" Введите номер задачи: ";
    cin>>A;
    switch(A)
    {
        case 1: zad1(); break;
        case 2: zad2(); break;
        case 3: zad3(); break;
        case 4: zad4(); break;
        default:cout<<" Вы ввели не правильный номер, введите 1-4 ";
    }
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2011, 19:24     swith не работает
Посмотрите здесь:

оператор выбора swith C++
C++ оператор swith
C++ Оформление меню (swith)
std::string код работает в VS 6.0, но не работает в VS2012 (error C4996) C++
Swith - нюанс C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
snql
3 / 3 / 0
Регистрация: 16.02.2010
Сообщений: 26
30.03.2011, 19:53     swith не работает #2
У меня отлично запустилось, перед вызовом gets() рекомендую очистить буфер cin.get()
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
30.03.2011, 19:58     swith не работает #3
snql, Вообще-то cin.get() не очищает поток, а ждет нажатие клавиши.Очистку потока выполняет метод sync().
Zheka91
4 / 4 / 1
Регистрация: 22.11.2010
Сообщений: 101
30.03.2011, 20:36  [ТС]     swith не работает #4
Цитата Сообщение от asics Посмотреть сообщение
snql, Вообще-то cin.get() не очищает поток, а ждет нажатие клавиши.Очистку потока выполняет метод sync().
и как это рабит, а то я просто написал sync() он пишет error C3861: sync: идентификатор не найден
snql
3 / 3 / 0
Регистрация: 16.02.2010
Сообщений: 26
30.03.2011, 20:37     swith не работает #5
Цитата Сообщение от Zheka91 Посмотреть сообщение
и как это рабит, а то я просто написал sync() он пишет error C3861: sync: идентификатор не найден
cin.sync();
Yandex
Объявления
30.03.2011, 20:37     swith не работает
Ответ Создать тему
Опции темы

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