Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Передача многомерного массива в функцию




 

Отметим, что на самом деле в языке C++ не существует никаких многомерных массивов. Фактически вместо многомерных массивов используется массив массивов.

Подобно любым массивам, многомерный массив передается как указатель на его первый элемент. Элементом многомерного массива является массив. Размер массива по второй размерности (и всем последующим) является частью типа элемента и подлежит указанию в определении

 

 

#include<iostream.h>

#include<conio.h>

 

void matrix(int (*a)[2],int n,int m)

{

for (int i=0;i<n;i++)

{for(int j=0;j<m;j++)

cout<<a[i][j]<<'\t';

cout<<'\n';}

}

 

int main()

{

int i;

int c[2][2]={{2,1},{3,5}};

matrix(c,2,2);

getch();

}

 

НЕЛЬЗЯ!

void matrix(int *a[2],int n,int m) - массив из 2 указателей

void matrix(int (a*)[2],int n,int m) - Здесь параметр а объявлен как указатель на массив из 2 целочисленных элементов

Многомерный массив можно также объявить используя синтаксис массива. Подобно одномерному массиву, компилятор игнорирует первую размерность, поэтому указывать ее не имеет смысла.

void matrix(int a[][2],int n,int m)

первый параметр является массивом, элементы которого представляют собой массивы из 2 целочисленных элементов

Строки

В С++ существует 2 типа строк. Первый из них - это массив переменных типа char.

 

Пример:

char name[50];

cin>>name;

cout<<"Hello "<<name;

 

Для работы со строками, заданными как массив из символов существуют специальные библиотечные функции, которые содержатся в заголовочном файле string.h.

 

Прототип функции Краткое описание Примечание
unsigned strlen(const char* s); Вычисляет длину строки s.  
int strcmp(const char* s1, const char* s2); Сравнивает строки s1 и s2. Если s1<s2, то результат отрицательный, если s1==s2, то результат равен 0, если s2>s1 – результат положительный.
int strcnmp(const char* s1, const char* s2); Сравнивает первые n символов строк s1 и s2. Если s1<s2, то результат отрицательный, если s1==s2, то результат равен 0, если s2>s1 – результат положительный.
char* strcpy(char* s1, const char* s2); Копирует символы строки s1 в строку s2.  
char* strncpy(char* s1, const char* s2, int n); Копирует n символов строки s1 в строку s2. Конец строки отбрасывается или дополняется пробелами.
char* strcat(char* s1, const char* s2); Приписывает строку s2 к строке s1  
char* strncat(char* s1, const char* s2); Приписывает первые n символов строки s2 к строке s1  
char* strdup(const char* s); Выделяет память и переносит в нее копию строки s При выделении памяти используются функции

cin и cout являются объектами (переменными) классов istream и ostream, которые определены в заголовочном файле iostream.h. А если так, они предоставляют функции, которые ваши программы могут вызывать для решения определенных задач. Так, функции cin.get и cout.put позволяют вашим программам вводить или выводить один символ.

Функция cin.getline позволяет программам читать строку текста с клавиатуры.

 

Пример

#include <iostream.h>

int main()

 

{

char string[128];

cout << "Введите строку текста и нажмите Enter";

cin.getline(string, sizeof(string), 'Я');

cout << "Вы ввели: " << string;

}

 

Второй из вариантов, более удобный - это специальный класс string. Для его работы необходимо в начале программы подключить заголовочный файл string.h:

 

#include <string>

 

Для создания строки вам необходимо в начале программы написать using namespace std;

Теперь чтоб создать строку достаточно написать:

 

string s;

 

Для записи в строку можно использовать оператор =

 

s="Hello";

 

Пример работы с классом string:

 

string name;

cout<<"Enter your name;

cin>>name;

cout<<"Hi "<<s<<"!";






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных