Главная

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

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

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

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

ТОР 5 статей:

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

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

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

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

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

КАТЕГОРИИ:






Инициализация элементов многомерных массивов




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

int MyArray[3][3][3] = { 0,1,2,3,4,5,6,7,8,9,10,11 };

Начальные значения получают следующие элементы трёхмерного массива:

MyArray[0][0][0] == 0

MyArray[0][0][1] == 1

MyArray[0][0][2] == 2

MyArray[0][1][0] == 3

MyArray[0][1][1] == 4

MyArray[0][1][2] == 5

MyArray[0][2][0] == 6

MyArray[0][2][1] == 7

MyArray[0][2][2] == 8

MyArray[1][0][0] == 9

MyArray[1][0][1] == 10

MyArray[1][0][2] == 11

Вопрос 31. Символы. Стандартные кодовые таблицы символов. Приведите известные вам кодировки символов. Привести примеры обработки символов с использованием библиотечных функций на языке С/C++.

Вопрос 32. Символьные строки. Два эквивалентных способа объявления и инициализации строк. Привести примеры обработки строк в С/C++.

Строки в С++ позволяют работать с символьными данными.

В С++ существует 2 типа строк.

1. Это массив переменных типа char.

Переменная типа char хранит в себе 1 символ. Размер такой строки равняется размеру

массива - 1, т.к. последний элемент содержит NULL (пустая переменная без значения),

который обозначает символ конца строки.

Например:

char name[ 50];

cin>>name;

cout<<"Hello "<<name<<endl;

2. Это специальный класс string.

Для его работы необходимо в начале программы подключить заголовочный файл string:

#include <string>

В отличие от типа char, string является классом. Для создания строки вам необходимо в

начале программы написать

using namespace std;

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

string s;

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

s="Hello";

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

string name;

cout<<"Enter your name"<<endl;

cin>>name;

cout<<"Hi "<<s<<“!"<<endl;

Строка при объявлении может быть инициализирована

начальным значением, например, так:

char string [10] = "abcdefghf";

Если подсчитать кол-во символов в двойных кавычках,

их окажется 9, а размер строки 10 символов.

Последнее место отводится под нуль–символ, причём

компилятор сам добавит его в конец строки.

Посимвольная инициализация строки:

char string [10] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'f', '\0'};

При объявлении строки не обязательно указывать её

размер, но при этом обязательно нужно её

инициализировать начальным значением. Тогда размер

строки определится автоматически и в конец строки

добавится нуль-символ.

Инициализация строки без указания размера:

char string[ ] = "abcdefghf";

Вопрос 34. Алгоритмы копирования строк, реализованные через массивы и стандартные строковые функции языка С/C++.

char *s1, *s2;

char * strcpy (s1, s2);

создаёт копию строки S2 по адресу S1

char *s1, *s2; int n;

char * strncpy (s1, s2, n);

по адресу S1 копируется не более n

символов строки S2

Пример:

#include "stdafx.h"

#include <iostream>

#include <cstring>

// для strcpy()

using namespace std;

int main ()

{

char str1[ ] = "Я программист";

char str2[40];

char str3[80];

strcpy (str2, str1);

// копируем строку str1 в str2

strcpy (str3, “копирование выполнено успешно \n");

// копируем строку во втором параметре в str3

cout << "str1: " << str1 << "\n str2: " << str2

<< "\n str3: " << str3;

return 0;

}

Вопрос 35. Функции поиска одиночного символа и подстроки в строке. Проиллюстрировать работу функций в С/C++ на примерах.

char* s; int c;

char* strchr (s, c);

поиск первого вхождения символа с в строке s. В случае удачного поиска возвращает указатель на место первого вхождения символа с, а если не находит, то возвращает NULL (пустой указатель).

char *s1, *s2;

char* strstr (s1, s2);

функция ищет в строке s1 подстроку S2 и возвращает на нее указатель или NULL, если не

найдено.

Пример:

#include "stdafx.h"

#include <iostream>

#include <cstring>

// для strchr()

using namespace std;

int main ()

{

char lotr[ ] = "_- =Властелин к0лец =-_";

// строка в

// которой будем искать символ 0

cout << "Ищите кольцо всевластия в LOTR!!!\n";

char * ring = strchr(lotr, '0'); // поиск символа 0 в строке lotr

cout << "Моя прелесть находится в " << (ring - lotr + 1)

<< " квадрате\n"; // определяем позицию символа

return 0;

}






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

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