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

Из символов в буквы

19.07.2011, 11:23. Показов 1466. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Знаю один из методов защиты от переполнения массива.

C++
1
2
3
4
5
char str[40];
cout<<"Введите строчку символов --> ";
cin>>setw(40)>>str;
 
}
Мне надо проделать такую же защиту с типом данных
C++
1
int
Примерно должно выглядеть так

C++
1
2
3
int str[40];
cout<<"Введите цифры --> ";
cin>>setw(40)>>str;
Как этого добится ?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.07.2011, 11:23
Ответы с готовыми решениями:

C (СИ) - Ввести строку символов.И После каждой 2 Буквы ( Именно буквы ) Вставить слово
Огромное Спасибо Darkrduk за эту программу ( программа вставляет MAU ) после каждого 2 символа ** ...

Дан текстовый файл содержащий строку символов.Заменить в ней буквы О на буквы А
Дан текстовый файл содержащий строку символов.Заменить в ней буквы О на буквы А

Имеется строка символов, содержащая не только латинские буквы, но и цифры. Заменить все буквы номером символа
Имеется строка символов, содержащая не только латинские буквы, но и цифры. Заменить все буквы...

Гласные латинские буквы в строке нужно заменить на соответствующие прописные буквы, а каждые пять символов разделить пробелами.
Добрые Люди, помогите создать задачку. Условия Дана символьная строка, состоящая из строчные...

16
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
19.07.2011, 11:24 2
Циклом for?
0
15 / 14 / 10
Регистрация: 22.03.2010
Сообщений: 695
19.07.2011, 11:25  [ТС] 3
Цитата Сообщение от neske Посмотреть сообщение
Циклом for?
нужно сделать так чтоб пользователь только один раз нажимал интер
0
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
19.07.2011, 11:33 4
Лучший ответ Сообщение было отмечено как решение

Решение

C++
1
cout << " НЕ ЖМИ ENTER, ПАДЛА !!! << endl;
Добавлено через 45 секунд
или так:
C++
1
cout << "ВВОДИ ДАННЫЕ ЧЕРЕЗ ПРОБЕЛЫ, А НЕ ЧЕРЕЗ ENTER !!!!!!!!!!!" << endl;
4
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
19.07.2011, 11:36 5
ВВОДИ ДАННЫЕ ЧЕРЕЗ ПРОБЕЛЫ, А НЕ ЧЕРЕЗ ENTER - будь плохим парнем.
1
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
19.07.2011, 12:52 6
Цитата Сообщение от parkito Посмотреть сообщение
нужно сделать так чтоб пользователь только один раз нажимал интер
Вводить данные в строку(std::string) и парсить(std::istringstream). Ну, или следовать советам приведённым выше )
0
15 / 14 / 10
Регистрация: 22.03.2010
Сообщений: 695
19.07.2011, 13:06  [ТС] 7
Ну вот этот массив чтоб заполнить нужны интеры

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include<iomanip>
#include <windows.h>
#include <cstring>
using namespace std;
int main ()
{setlocale(LC_ALL,"Rus");
int a[10];
cout<<"Не жми на интер ***ла --> ";
for(int i=0;i<10;i++)
    cin>>a[i];
cout<<'1';
cout<<a;
cin.get();
cin.get();
return 0;
}
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
19.07.2011, 13:20 8
Можно ввести и без enter'a.
1
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
19.07.2011, 13:33 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
27
28
29
30
31
32
33
34
#include <sstream>
#include <iostream>
#include <string>
#include <cstddef>
 
void ReadLnToArr(int array[], std::size_t capacity, std::size_t* new_size)
{
    std::string s;
    std::getline(std::cin, s);
    std::istringstream stream(s);
 
    *new_size = 0;
 
    for(std::size_t i = 0; i < capacity; ++i)
    {
        if(stream >> array[i]) ++*new_size;
        else break;
    }
}
 
int main()
{
    const std::size_t a_capacity = 10;
 
    std::size_t a_size = 0;
    int a[a_capacity] = {0};
 
    ReadLnToArr(a, a_capacity, &a_size);
 
    for(std::size_t i = 0; i < a_size; ++i)
        std::cout << a[i] << '\n';
 
    return 0;
}
0
15 / 14 / 10
Регистрация: 22.03.2010
Сообщений: 695
19.07.2011, 13:47  [ТС] 10
Цитата Сообщение от neske Посмотреть сообщение
Можно ввести и без enter'a.
А без пробелов можно ? Нужно просто чтоб ввелась строка и каждая ее цифра поместилась в разные части массива
0
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
19.07.2011, 13:48 11
rangerx, млин вот не знаю почему но мне вот это не нравится
C++
1
2
3
    std::string s;
    std::getline(std::cin, s);
    std::istringstream stream(s);
мне кажется что stream должно инициализироваться пустой строкой (ведь на этапе компиляции же)
хотя код проверил - работает.
вообщем не знаю ... не доверяю как-то.

имхо лучше так делать:
C++
1
2
3
4
    std::string s;
    std::getline(std::cin, s);
    std::istringstream stream;
stream << s;
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
19.07.2011, 14:19 12
Цитата Сообщение от OstapBender Посмотреть сообщение
мне кажется что stream должно инициализироваться пустой строкой
Нет
Цитата Сообщение от OstapBender Посмотреть сообщение
(ведь на этапе компиляции же)
???
Цитата Сообщение от OstapBender Посмотреть сообщение
имхо лучше так делать
Так сделать нельзя, оператор << для входного потока не перегружен
1
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,113
Записей в блоге: 2
19.07.2011, 14:25 13
Цитата Сообщение от OstapBender Посмотреть сообщение
мне кажется что stream должно инициализироваться пустой строкой (ведь на этапе компиляции же)
Так а какая разница? Будет создан примерно такой код:
C++
1
istringstream(this, s);//где this=&stream
т.е. вызов конструктора, а там уже что он будет делать со строкой s - это его дело))
0
237 / 210 / 29
Регистрация: 08.06.2011
Сообщений: 467
19.07.2011, 14:26 14
Цитата Сообщение от OstapBender Посмотреть сообщение
имхо лучше так делать:
Для этого есть специальный метод str
0
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
19.07.2011, 14:57 15
Цитата Сообщение от rangerx Посмотреть сообщение
Так сделать нельзя, оператор << для входного потока не перегружен
да, не заметил что там iss а не просто ss.
Цитата Сообщение от Net_Wanderer Посмотреть сообщение
Для этого есть специальный метод str
ето для вывода, а я хотел ввести строку туда

Kastaneda, да, мне почему то взбрело что конструктор вызывается на этапе компиляции, когда строка s еще пустая, типа ошибка наподобие этого:
C++
1
2
3
4
5
6
    int n;
 
    std::cout << "n: ";
    std::cin >> n;
 
    int arr[n];
0
Kastaneda
19.07.2011, 15:03
  #16

Не по теме:

Цитата Сообщение от OstapBender Посмотреть сообщение
Kastaneda, да, мне почему то взбрело что конструктор вызывается на этапе компиляции
Я как-то интуитивно так и подумал :)

0
237 / 210 / 29
Регистрация: 08.06.2011
Сообщений: 467
19.07.2011, 15:08 17
Цитата Сообщение от OstapBender Посмотреть сообщение
ето для вывода, а я хотел ввести строку туда
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
#include <sstream>
 
int main()
{
    std::string s("my string");
    std::string t;
    std::istringstream isstr;
 
    isstr.str(s);
 
    isstr >> t;
    std::cout << t << std::endl;
    return 0;
}
1
19.07.2011, 15:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2011, 15:08
Помогаю со студенческими работами здесь

Дана строка символов. Верно ли, что среди символов этой строки имеются все буквы, входящие в слово “мышь”
В файле «input.txt» дана строка символов. Выяснить верно ли, что среди символов этой строки имеются...

Строка символов. Выяснить верно ли, что среди символов этой строки имеются все буквы, входящие в слово “мышь”
В файле «input.txt» дана строка символов. Выяснить верно ли, что среди символов этой строки имеются...

Заменить в исходном файле русские буквы ‘к’ на буквы ‘т’, буквы ‘т’ на буквы ‘к’, буквы ‘л’ на буквы ‘в’, буквы ‘в’ на
Задание: Заменить в исходном файле русские буквы ‘к’ на буквы ‘т’, буквы ‘т’ на буквы ‘к’, буквы...

Дана строка символов. Группы символов в ней между группами пробелов считаются словами. Определить сколько слов содержат ровно три буквы "е".
Дана строка символов. Группы символов в ней между группами пробелов считаются словами. Определить...


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

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