С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,943
Записей в блоге: 1
#1

Создайте вектор, хранящий десять строковых значений "zero", "one", ..., "nine" - C++

28.10.2011, 15:40. Просмотров 1793. Ответов 12
Метки нет (Все метки)

не могу понять как это можно сделать:
"Создайте вектор, хранящий десять строковых значений "zero", "one", ..., "nine". Введите их в программу, преобразующую цифру в соответствующее строковое представление; например, при вводе цифры 7 на экран должна быть выведена строка seven. С помощью этой же программы, используя тот же са¬мый цикл ввода, преобразуйте строковое представление цифры в числовое; на¬пример, при вводе строки seven на экран должна быть вьшедена цифра 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
#include <iostream>
#include <conio.h>
#include <vector>
#include <string>
using namespace std;
 
int main()
{
   vector <string> text(11);
   text[0]="zero";
   text[1]="one";
   text[2]="two";
   text[3]="three";
   text[4]="four";
   text[5]="five";
   text[6]="six";
   text[7]="seven";
   text[8]="eight";
   text[9]="nine";
   text[10]="ten";
 
 
 
    getch();
    return 0;
}
а дальше не знаю что делать
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2011, 15:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создайте вектор, хранящий десять строковых значений "zero", "one", ..., "nine" (C++):

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Наследуемым классом для комплексного числа объявить класс "радиус-вектор", имеющий данные "длина" и "угол" - C++
кто то напишите пожалуйста, вот программа: наследуемым классом для комплексного числа объявить класс &quot;радиус-вектор&quot;, имеющий данные...

Перегрузка функций "ввести в поток", "вывести с потока", "умножить вектор на число" - C++
Подскажите пожалуйста, как убрать ошибки с этой программы? (делала перегрузку &quot;ввести в поток&quot; и &quot;вывести с потока&quot;, а также &quot;умножить...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

12
garkeP91
50 / 50 / 5
Регистрация: 24.10.2010
Сообщений: 131
28.10.2011, 15:58 #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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <conio.h>
#include <vector>
#include <string>
using namespace std;
 
int main()
{
   int n=10;
   vector <string> text(n);
   text[0]="zero";
   text[1]="one";
   text[2]="two";
   text[3]="three";
   text[4]="four";
   text[5]="five";
   text[6]="six";
   text[7]="seven";
   text[8]="eight";
   text[9]="nine";
 
   int flag;
   cout<<"Press:"<<endl;
   cout<<"(0)   number -> string"<<endl;
   cout<<"(1)   string -> number"<<endl;
   cin>>flag;
   if(flag==0)
   {
        int i;
        cout<<"Enter number: ";
        cin>>i;
        cout<<text[i]<<endl;
   }
   else if(flag==1)
   {
        string str;
        cout<<"Enter string: ";
        cin>>str;
        for(int k=0; k<n; k++)
            if (text[k] == str)
            {
                cout<<k<<endl;
                break;
            }
   }
   else  cout<<"Select 0 or 1!"<<endl;
 
   getch();
   return 0;
}
спрашивай, если что не понятно
2
-=ЮрА=-
Заблокирован
Автор FAQ
28.10.2011, 16:00 #3
Цитата Сообщение от Sylar9 Посмотреть сообщение
может подскажите
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
#include <iostream>
#include <string>
using namespace std;
 
char * sDIGITS[] = {
    "zero",
    "one",
    "two",
    "three",
    "four",
    "five",
    "six",
    "seven",
    "eight",
    "nine"
};
 
char * num2str(int num);
int str2num(char * str);
 
int main()
{
    int val;char str[6];
    cout<<"Enter digit [0;9] : ";cin>>val;
    cout<<"String equivalent : "<<num2str(val)<<"\n";
    cout<<"Enter text value  : ";cin>>str;
    cout<<"Value : "<<str2num(str)<<"\n";
    system("pause");
    return 0;
}
 
char * num2str(int num)
{
    return sDIGITS[num];
}
 
int str2num(char * str)
{
    int ret = -1;
    for(int i = 0; i < 10; i++)
    {
        if(strcmp(sDIGITS[i],str) == 0)
        {
            ret = i;
            break;
        }
    }
    return ret;
}
1
Миниатюры
Создайте вектор, хранящий десять строковых значений "zero", "one", ..., "nine"  
Zverit
Уничтожитель печенек
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
28.10.2011, 16:04 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
   string getnum;
   string text[11] ={"zero","one", "two","three","four", 
                    "five", "six", "seven","eight","nine","ten"};  
    cin>>getnum;
 
   for (int i = 0 ; i  <= 10; i++)
       if (text[i].compare( getnum ) == 0)
           cout<<i; 
    system("PAUSE>>null");
    return 0;
}
1
dr.hell
0 / 0 / 0
Регистрация: 18.05.2010
Сообщений: 3
14.05.2012, 17:09 #5
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
#include <std_lib_facilities.h>
using namespace std;
int main(){
    int num,i;
    vector<string> numbers(10);
    numbers[0] = "null";
    numbers[1] = "one";
    numbers[2] = "two";
    numbers[3] = "three";
    numbers[4] = "four";
    numbers[5] = "five";
    numbers[6] = "six";
    numbers[7] = "seven";
    numbers[8] = "eight";
    numbers[9] = "nine";
 
    cout << "Enter num: \n";
    while (cin >> num)
    {
    for (i=0; i<numbers.size(); i++)
    
        if (num == i) cout << numbers[i] <<"\n";
    }
    keep_window_open();
    return 0;
}
и

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 <std_lib_facilities.h>
using namespace std;
int main(){
    int i;
    string num;
    vector<string> numbers(10);
    numbers[0] = "null";
    numbers[1] = "one";
    numbers[2] = "two";
    numbers[3] = "three";
    numbers[4] = "four";
    numbers[5] = "five";
    numbers[6] = "six";
    numbers[7] = "seven";
    numbers[8] = "eight";
    numbers[9] = "nine";
 
    cout << "Enter num: \n";
    while (cin >> num)
    {
    for (i=0; i<numbers.size(); i++)
    
        if (num == numbers[i]) cout << i <<"\n";
    }
    keep_window_open();
    return 0;
}
0
oleg@tor1
32 / 17 / 2
Регистрация: 05.09.2011
Сообщений: 152
09.11.2012, 00:26 #6
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
#include "std_lib_facilities.h"
using namespace std;
 
string v=" ";
int x=0;
char tip;
vector <string> value (10); // Вектор.
 
value[0] = "zero";
value[1] = "one";
value[2] = "two";
value[3] = "three";
value[4] = "four";
value[5] = "five";
value[6] = "six";
value[7] = "seven";
value[8] = "eight";
value[9] = "nine";
 
 
 
setlocale(LC_ALL,"russian"); // Подключает Кириллицу.
 
cout << "Выберите тип трансформации цифр:"<< endl;
    cout << "'Цифра - текст' нажмите 0" << endl;
        cout << "'Текст - цифра' нажмите 1" << endl;
 
cin >> tip;
 
    if (tip == '0')//'Цифра - текст'
        {
            unsigned int i=0;
                cout << "Введите цифру:" << endl;               
                    while (i<=value.size())
                    {   
                        ++i;
                        cin >> x;               
                        cout << value[x] << endl;
                    }//end_while            
        }//end_if
 
    else if (tip == '1')
    {
        unsigned int t=0;
            string text;
                cout << "Введите текст:" << endl;
 
        while (t<=value.size())
        {
        ++t;
        cin >> text;
 
        for (unsigned int z = 0; z<=value.size();++z)
            {   
                if (value[z] == text)
                {
                cout << z << endl;
                break;
                }//end_if
                
            }//end_for  
        }//end_while
    }//end_else
    else
    {
        cout << "Вы не выбрали тип трансформации. 0 или 1:" << endl;    
    }//end_else
 
keep_window_open();
return 0;
} // end_main()
0
Lar4ik
43 / 40 / 20
Регистрация: 27.02.2013
Сообщений: 284
07.02.2014, 16:27 #7
Решаю эту же задачу (первую часть), но после ввода цифры (строка 10) происходит выход из программы. Подскажите, что не так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main()
{
    vector<string>words;
    string number;
    while(cin>>number)
        words.push_back(number);
    
   int x;
    cout<<"Enter integer number:"<<endl;
    while(cin>>x)
    {
        for (int i=0;i<words.size();++i)
            if(x==i) 
                cout<<words[i];
    }
    getch();
    return 0;
}
0
oleg@tor1
32 / 17 / 2
Регистрация: 05.09.2011
Сообщений: 152
07.02.2014, 16:35 #8
У тебя if задает единственное совпадение, т.е. х ты ввел с клавиатуры, а цикл двигается каждый ввод. Тебе надо прописать условие else. Например, continue
0
Ev[G]eN
iOS/Android Developer
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
07.02.2014, 16:38 #9
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
#include <algorithm>
#include <iterator>
#include <iostream>
#include <string>
#include <array>
 
int main()
{
    const size_t arraySize = 10;
    
    std::array <std::string, arraySize> stringArray = { "zero", "one", "two", "three", "four",
                                                        "five", "six", "seven", "eigth", "nine" };
 
    size_t userNumber;
    std::cout << "Number: ";
    std::cin >> userNumber;
    std::cout << "Result: " << stringArray.at(userNumber) << std::endl;
 
    std::string userString;
    std::cout << "String number: ";
    std::cin >> userString;
    std::cout << "Result: " << std::distance(stringArray.begin(), std::find(stringArray.begin(), stringArray.end(), userString)) << std::endl;
 
    std::system("pause");
    return 0;
}
1
Lar4ik
43 / 40 / 20
Регистрация: 27.02.2013
Сообщений: 284
07.02.2014, 18:58 #10
oleg@tor1, не помогло
0
-=ЮрА=-
Заблокирован
Автор FAQ
07.02.2014, 21:15 #11
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Lar4ik Посмотреть сообщение
while(cin>>x)
* * {
* * * * for (int i=0;i<words.size();++i)
* * * * * * if(x==i)
* * * * * * * * cout<<words[i];
* * }
- написана несусветная глупость(бесконечный ввод)!Далее почему никто их начинающих не хочет понять что после ввода
Цитата Сообщение от Lar4ik Посмотреть сообщение
cin>>number
остаётся \n который в последующем вводе просто его искоробит?
Цитата Сообщение от Lar4ik Посмотреть сообщение
while(cin>>x)
. Подумай что будет с вводом если для int x прийдёт чаровский \n из буфера?
Фиксится следующим образом
Цитата Сообщение от Lar4ik Посмотреть сообщение
int x;cin.get();
* * cout<<"Enter integer number:"<<endl;
Вот фикс проекта на том уровне на котором он написан
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
#include <string>
#include <vector>
#include <iostream>
using namespace std;
 
int main()
{
    vector<string>words;
    string number;
    while(cin>>number)
    {
        if( number == "stop" )
            break;
        else
        words.push_back(number);
    }
    
   int x;cin.get();
    cout<<"Enter integer number:"<<endl;
    while(cin>>x)
    {
        for (int i=0;i<words.size();++i)
            if(x==i) 
                cout<<words[i];
    }
    system("pause");
    return 0;
}
3
Миниатюры
Создайте вектор, хранящий десять строковых значений "zero", "one", ..., "nine"  
LineStown
66 / 66 / 3
Регистрация: 04.08.2010
Сообщений: 420
Завершенные тесты: 1
26.07.2015, 21:46 #12
рискну предложить такой вариант)

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 "std_lib_facilities.h"
 
int main()
{
    vector<string> numbers(10);
    numbers[0] = "null";
    numbers[1] = "one";
    numbers[2] = "two";
    numbers[3] = "three";
    numbers[4] = "four";
    numbers[5] = "five";
    numbers[6] = "six";
    numbers[7] = "seven";
    numbers[8] = "eight";
    numbers[9] = "nine";
 
    string data;
    cout << "Input String or Int : ";
    cin >> data;
    if (data.length() == 1)cout << data << " = " << numbers[stoi(data)] << endl;
    else
        for (auto i = 0; i < 10; i++)
            if (numbers[i] == data)
            {
                cout << data << " = " << i << endl;
                break;
            }
    return 0;
}
0
Krekcer
2 / 2 / 0
Регистрация: 06.09.2014
Сообщений: 7
17.08.2017, 15:33 #13
Вот мой вариант. По-моему один из самых коротких и понятных

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 "stdafx.h"
#include <iostream>
#include <string>
#include <vector>
 
using namespace std;
 
//программа, преобразующая строковое значение числа в цифру и наоборот
int main()
{
    cout << "Please, enter a number from 0 to 9 as a string or as a number:\n";
    vector <string> str_number = { "zero", "one", "two", "three", "four",
    "five", "six", "seven", "eight", "nine" };
 
    string str;
    while(cin >> str)
    {
        for (int i = 0; i < str_number.size(); ++i)
            if (str == str_number[i])
                cout << i << '\n';
            else
                if (str == to_string(i))
                    cout << str_number[i] << '\n';
    }
    system("pause");
    return 0;
}
2
17.08.2017, 15:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2017, 15:33
Привет! Вот еще темы с ответами:

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс &quot;вентилятор&quot; содержащий в себе классы:...

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...

Структура «Преподаватель» с полями "ФИО", "стаж", "категория", "нагрузка" - C++
Функция - расчёт зарплаты по нагрузке и оплате часа для определенной категории. Категория Оплата часа Вторая 150 Первая 200 ...

по строкам.замените в слове сочетание "му" на "а" , а букву "ы" на "ца". очень нужно - C++
замените в слове сочетание &quot;му&quot; на &quot;а&quot; , а букву &quot;ы&quot; на &quot;ца&quot;. очень нужно Добавлено через 21 час 4 минуты неужели никто не знает...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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