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

строка с клавиатуры - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировать массив по возрастанию http://www.cyberforum.ru/cpp-beginners/thread919173.html
Здравствуйте, Уважаемые программисты. Помогите мне, пожалуйста, написать программу для сортировки массива чисел по возрастнанию. Первый элемент массива N(x) нужно записать в новый сформированный массив, затем сравнить второй элемент с первым и, если второй больше первого, то записать и его, а если меньше первого, то удалить. И так все 64 тысячи элементов. Сортировка проходит в один просмотр. В...
C++ Схемы Люди добрые помогите пожалуйста. Проблема в том что я криворукий если и пишу код с 10 раза то это хорошо, но проблема в том что абсолютно не умею делать блок схемы. Может кто подсобит? #include <iostream> #include <fstream> #include <string> #include <map> #include <conio.h> #include <locale.h> #include <time.h> #include <stdlib.h> http://www.cyberforum.ru/cpp-beginners/thread919167.html
Cannot open include file: 'chrono' C++
fatal error C1083: Cannot open include file: 'chrono': No such file or directory#include <iostream> #include <chrono> #include <random> #include <algorithm> #include <iterator> #include <unordered_set> using namespace std; int main ()
C++ Класс - преобразование массива в строку
#include <iostream> class str { public: ~str() // Деструктор, удаляет массив { delete stroka; dlina_stroki = 0;
C++ Загрузка bmp файла http://www.cyberforum.ru/cpp-beginners/thread919150.html
установил RAD 2010, auxDIBImageLoad перестал работать(символ не найден пишет мне студия). можете пожалуйста скинуть замену этой функции, bmp имеет 24 битную глубину цвета в opengl (вроде так)
C++ Обращение к элементам двухмерного динамического массива Строки в двумерном динамическом массиве расположены не вплотную друг к другу. Тогда почему чтобы получить значение из массива оператор ar правильно обращается к нужному элементу? #include <iostream> using namespace std; void PrintArray(int **ar, int rows, int cols); int main() { int **ar; подробнее

Показать сообщение отдельно
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
07.07.2013, 16:25     строка с клавиатуры
Цитата Сообщение от Ruber54 Посмотреть сообщение
1. Как мне сделать, чтобы ввод строки прерывался,если символов больше, чем указано в задание?
( у меня получается, что вводить могу сколько угодно, а после вывода того, что ввел на экран ,обрезается до 80 символов строка.)
2. Как мне сделать проверку на символы? а конкретнее на четность и нечетность?
спасибо.
1. например,
C++
1
2
char s[80];
cin.getline(s, 80)
2. проверка на четность-нечетность цифры
C++
1
if ((c - '0') & 1)
пример без динамических массивов:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
#include<cctype>
const int N = 80;
int main()
{
   char s[N], a[N], b[N];
   int i, j, k;
   std::cin.getline(s, N);
   for(i = j = k = 0; s[i]; ++i)
      if (isdigit(s[i]))
         if ((s[i] - '0') & 1)
            a[j++] = s[i];
         else b[k++] = s[i];   
   a[j] = b[k] = '\0';
   std::cout << a << std::endl; 
   std::cout << b << std::endl; 
   return 0;
}
Добавлено через 14 минут
в стиле Croessmah :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
#include<cctype>
const int N = 80;
int main()
{
   char s[N], a[N], b[N];
   int i, j, k;
   std::cin.getline(s, 80);
   for(i = j = k = 0; a[j] = b[k] = s[i]; j += (isdigit(s[i]) && ((s[i] - '0') & 1)), k += (isdigit(s[i]) && !((s[i] - '0') & 1)), ++i)
      ;
   a[j] = b[k] = '\0';
   std::cout << a << std::endl; 
   std::cout << b << std::endl; 
   return 0;
}
 
Текущее время: 10:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru