ну если я правильно понял то массивы у тебя char
?
Если да то вот пару ошибок у вас.
Во-первых вы сверяете 1 символ из массива со строкой!
В С++ в двойных кавычках это строка! К ней добавляется завершающий нуль символ.
То есть вы сверяете символ из массива с 2 символами из строки "="
.
В С++ символ должен быть в одинарных кавычках '='
.
А то у вас получается что вы сверяете к примеру символ '=' с 2 символами '='
и '\0'
.
Во-вторых вы берёте не символ из массива, а пытаетесь получить адрес адрес ячейки массива в которой хранится символ и сверить со строкой.
Символ &
в С++ означает взятие адреса.
Ваш код должен выглядеть примерно так.
for (int i = 0; i < 256; i++) < if (inp_str[i] == '=' && inp_str[i + 1] == '=') < out_str[start_out] = '='; start_out++; >>
У вас в сообщении ошибки так и написано, что компилятор не может с конвертировать символ из массива в 2 символа из строки "=" , чтобы потом сверить их.
Документация
Присваивать значения объектам на Java ® объектный массив, используйте MATLAB ® синтаксис команд. Например, следующий оператор присваивает значение массиву Java A из типа java.lang.Double .
A(row,column) = java.lang.Double(value)
В программе Java вы присвоили бы значение A[row-1][column-1] . Для получения дополнительной информации о различиях между Java и массивами MATLAB, смотрите, Как MATLAB Представляет Массивы Java.
Чтобы запустить примеры в этой теме, создайте 4 5 массив dblArray . Значения отображены для dblArray зависьте от порядка, в котором вы запускаете примеры.
dblArray = javaArray('java.lang.Double',4,5); for m = 1:4 for n = 1:5 dblArray(m,n) = java.lang.Double((m*10)+n); end end dblArray
dblArray = java.lang.Double[][]: [11] [12] [13] [14] [15] [21] [22] [23] [24] [25] [31] [32] [33] [34] [35] [41] [42] [43] [44] [45]
Единственное присвоение индексации индекса
Можно использовать индексацию одно индекса, чтобы присвоить значения массиву. Например, создайте массив Java 5 на 1 и присвойте его строке dblArray .
onedimArray = javaArray('java.lang.Double',5); for k = 1:5 onedimArray(k) = java.lang.Double(100*k); end
Замените строку 3 на значения onedimArray .
dblArray(3) = onedimArray
dblArray = java.lang.Double[][]: [ 11] [ 12] [ 13] [ 14] [ 15] [ 21] [ 22] [ 23] [ 24] [ 25] [100] [200] [300] [400] [500] [ 41] [ 42] [ 43] [ 44] [ 45]
Присвоение линейной матрицы
Чтобы присвоить значение каждому элементу многомерного массива Java, используйте оператор двоеточия MATLAB ( : ). Например, инициализируйте содержимое dblArray обнулять.
dblArray(:) = java.lang.Double(0)
dblArray = java.lang.Double[][]: [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0]
Используйте оператор двоеточия, как вы были бы при работе с массивами MATLAB. Например, присвойте одно значение каждой строке в dblArray .
dblArray(1,:) = java.lang.Double(125); dblArray(2,:) = java.lang.Double(250); dblArray(3,:) = java.lang.Double(375); dblArray(4,:) = java.lang.Double(500)
dblArray = java.lang.Double[][]: [125] [125] [125] [125] [125] [250] [250] [250] [250] [250] [375] [375] [375] [375] [375] [500] [500] [500] [500] [500]
Пустое матричное присвоение
Можно присвоить пустую матрицу ( [] ) к элементу массива Java. MATLAB хранит null значение, а не массив 0 на 0.
dblArray(2,2) = []
dblArray = java.lang.Double[][]: [125] [125] [125] [125] [125] [250] [] [250] [250] [250] [375] [375] [375] [375] [375] [500] [500] [500] [500] [500]
Преобразованное в нижний индекс удаление
Если вы присваиваете пустую матрицу целой строке или столбцу массива MATLAB, то MATLAB удаляет ту строку или столбец от массива. Когда вы присваиваете пустую матрицу массиву Java, массив обеспечивает свои размерности.
Например, создайте массив MATLAB.
for m = 1:4 for n = 1:5 matlabArr(m,n) = (m*10) + n; end end matlabArr
matlabArr = 11 12 13 14 15 21 22 23 24 25 31 32 33 34 35 41 42 43 44 45
Присвойте пустую матрицу четвертому столбцу. Этот оператор изменяет свои размерности от 4 5 до 4 на 4.
matlabArr(:,4) = []
matlabArr = 11 12 13 15 21 22 23 25 31 32 33 35 41 42 43 45
Когда вы присваиваете пустую матрицу массиву Java dblArray , массив обеспечивает 4 5 размерности.
dblArray(:,4) = []
dblArray = java.lang.Double[][]: [125] [125] [125] [] [125] [250] [] [250] [] [250] [375] [375] [375] [] [375] [500] [500] [500] [] [500]
Документация MATLAB
Поддержка
- MATLAB Answers
- Помощь в установке
- Отчеты об ошибках
- Требования к продукту
- Загрузка программного обеспечения
© 1994-2021 The MathWorks, Inc.
- Условия использования
- Патенты
- Торговые марки
- Список благодарностей
Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
Как присвоить всем элементам массива одно значение
Массив представляет набор однотипных данных. Формальное определение массива выглядит следующим образом:
тип_переменной название_массива [длина_массива]
После типа переменной идет название массива, а затем в квадратных скобках его размер. Например, определим массив из 4 чисел:
int numbers[4];
Число элементов массива также можно определять через константу:
const int n = 4; int numbers[n]; // содержит 4 элемента
Некоторые компиляторы (например, G++) также поддерживают установку размера с помощью переменных.
Данный массив имеет четыре числа, но все эти числа имеют неопределенное значение. Чтобы установить значения элементов массива, указываются фигурные скобки (инициализатор), внутри которых перечисляются значения для элементов массива:
int numbers[4] <>; //
В данном случае фигурные скобки пусты, поэтому все элементы массива получают нулевые значения.
Также мы можем указать конкретные значения для всех элементов массива:
int numbers[4] ;
В данном случае в памяти выделяется некоторая область из четырех ячеек по 4 байта (размер типа int), где каждая ячейка содержит определенный элемент массива:
Если значений в инициализаторе меньше, чем элементов в массиве, то значения передаются первым элементам, а остальные получают нулевые значения:
int numbers[4] ; //
Если значений в инициализаторе больше, чем элементов в массиве, то при компиляции возникнет ошибка:
int numbers[4] ; // ! Ошибка
Здесь массив имеет размер 4, однако ему передается 6 значений.
Если размер массива не указан явно, то он выводится из количества переданных значений:
int numbers[] ;
В данном случае в массиве есть 6 элементов.
При этом не допускается присвоение одному массиву другого массива:
int nums1[] ; int nums2[] = nums1; // ошибка
Индексы. Получение и изменение элементов массива
После определения массива мы можем обратиться к его отдельным элементам по индексу. Индексы начинаются с нуля, поэтому для обращения к первому элементу необходимо использовать индекс 0. Обратившись к элементу по индексу, мы можем получить его значение, либо изменить его. Например, получим второй элемент (индекс 1):
int n = numbers[1];
Изменение значения второго элемента:
numbers[1] = 123;
Например, получим и изменим значения элементов:
#include int main() < int numbers[4]; int first = numbers[0]; // получаем первый элемент std::cout
При обращении по индексу следует учитывать, что мы не можем обратиться по несуществующему индексу. Так, если в массиве 4 элемента, то мы можем использовать индексы с 0 до 3 для обращения к его элементам. Использование любого другого индекса приведет к ошибке:
int numbers[4]; int forth = numbers[4]; // !Ошибка - в массиве только 4 элемента
Константные массивы
Если необходимо, чтобы нельзя было изменять значения элементов массива, то такой массив можно определить как константный с помощью ключевого слова const
const int numbers[4]; // numbers[1] = 23; // ошибка - значения элементов массива изменить нельзя
Длина массива
Длина массива не всегда бывает известна. Однако может потребоваться получить ее. Для этого можно использовать несколько способов. Первый способ, который пришел из языка С, представляет применение оператора sizeof :
#include int main() < int numbers[]; std::cout
По сути длина массива равна совокупной длине его элементов. Все элементы представляют один и тот же тип и занимают один и тот же размер в памяти. Поэтому с помощью выражения sizeof(numbers) находим длину всего массива в байтах, а с помощью выражения sizeof(numbers[0]) - длину одного элемента в байтах. Разделив два значения, можно получить количество элементов в массиве.
Второй способ представляет применение встроенной библиотечной функции std::size() :
#include int main() < int numbers[]; int count = std::size(numbers); std::cout
Перебор массивов
Используя циклы, можно пробежаться по всему массиву и через индексы обратиться к его элементам:
#include int main() < const int n = 4; int numbers[n] ; for(int i=0; i < n; i++) < std::cout >
Чтобы пройтись по массиву в цикле, надо знать его длину. Здесь длина задана константой n.вначале надо найти длину массива. И в цикле for перебираем все элементы, пока счетчик i не станет равным длине массива. В итоге на консоль будут выведены все элементы массива:
11 12 13 14
Другой пример - вычислим сумму элементов массива:
#include int main() < int numbers[]; int sum <>; for (int i <>; i < std::size(numbers); sum += numbers[i++]); std::cout
Здесь длина массива вычисляется динамически - с помощью функции std::size() .
Перебор элементов в стиле for-each
Используем другую форму цикла for , которая предназначена специально для перебора последовательностей, в том числе для массивов
#include int main() < int numbers[4] ; for(int n : numbers) < std::cout >
При переборе массива каждый перебираемый элемент будет помещаться в переменную number, значение которой в цикле выводится на консоль.
Если нам неизвестен тип объектов в массиве, то мы можем использовать спецификатор auto для определения типа:
for(auto n : numbers)
Ввод значений массива с консоли
Подобно тому, как вводятся данные для отдельных переменных, можно вводить значения для отдельных элементов массива. Например, пусть пользователь вводит значения числового массива:
#include int main() < const int max ; // максимальная длина массива - не больше 6 чисел int numbers[max]; // массив для ввода чисел int i<>; // счетчик введенных чисел std::cout > numbers[i]; // вводим число i++; > // выводим массив for (i =0; i < max; ++i) < std::cout std::cout
Здесь в цикле сначала вводятся шесть чисел для каждого элемента массива, затем выводим этот массив.