- •Массив (array) — это коллекция переменных одинакового типа, обращение к которым происходит с
- •Для объявления одномерного массива используется следующая форма записи.
- •Доступ к отдельному элементу массива осуществляется с помощью индекса. Индекс описывает позицию элемента
- •Для одномерных массивов общий размер массива в байтах вычисляется так:
- •На границах массивов погранзаставы нет
- •Алгоритм сортировки пузырьковым методом получил свое название от способа, используемого для упорядочивания элементов
- •//Использование метода пузырьковой сортировки
- •// Реализация метода пузырьковой сортировки.
- •Строка — это символьный массив, который завершается нулевым символом.
- •// Использование cin-инструкции для считывания
- •Введите строку: Это проверка
- •// Использование функции gets() для считывания
- •strcpy (to, from);
- •strcat(s1, s2);
- •strcmp(s1, s2);
- •При использовании функции strcmp() важно помнить, что она возвращает число 0 (т.е. значение
- •strlen(s);
- •// Отображение строки в обратном порядке.
- •Если запустить эту программу на выполнение и по приглашению ввести строки "привет" и
- •// Преобразование символов строки в их
- •int twod[10] [20];
- •Многомерные массивы
- •Массивы с числом измерений, превышающим три, используются нечасто, хотя бы потому, что для
- •Инициализация массивов
- •Для символьных массивов, предназначенных для хранения строк, предусмотрен сокращенный вариант инициализации, который имеет
- •в следующем фрагменте программы массив sqrs инициализируется числами от 1 до 10 и
- •При выполнении этой программы получаем такие результаты.
- •Предположим, что мы используем следующий вариант инициализации массивов для построения таблицы сообщений об
- •При инициализации многомерных массивов вам необходимо указать все данные, за исключением крайней слева
- •char str_array[30][80];
- •char name[10][80]; // Массив имен служащих.
- •void enter()
- •// Отображение отчета.
- •// Простая программа ведения базы данных служащих.
- •// Функция возвращает команду, выбранную
- •void enter()
- •Массив (array) — это коллекция переменных одинакового типа, обращение к которым происходит с
strcat(s1, s2);
Функция strcat() присоединяет строку s2 к концу строки s1, при этом строка s2 не изменяется.
#include <iostream>
#include <cstring> using namespace std; int main()
{
char s1[20], s2[10];
strcpy(s1, "Привет");
strcpy(s2, " всем!");
strcat (s1, s2);
cout << s1;
return 0;
}
strcmp(s1, s2);
Функция strcmp() сравнивает строку s2 со строкой s1 и возвращает значение 0, если они равны.
Если строка s1 лексикографически (т.е. в соответствии с алфавитным порядком) больше строки s2, возвращается положительное число. Если строка s1 лексикографически меньше строки s2, возвращается отрицательное число.
#include <iostream>
#include <cstring> #include <cstdio> using namespace std; bool password(); int main()
{
if(password()) cout << "Вход разрешен.\n";
else cout << "В доступе отказано.\n";
return 0;
}
// Функция возвращает значение true, если пароль принят, и значение false в противном случае.
bool password()
{
char s[80];
cout << "Введите пароль: ";
gets(s);
if(strcmp(s, "пароль")) { // Строки различны.
cout << "Пароль недействителен.\n";
return false;
}
// Сравниваемые строки совпадают.
return true;
При использовании функции strcmp() важно помнить, что она возвращает число 0 (т.е. значение false), если сравниваемые строки равны.
Следовательно, если вам необходимо выполнить определенные действия при условии совпадения строк, вы должны использовать оператор НЕ (!).
#include <iostream>
#include <cstdio>
#include <cstring> using namespace std; int main()
{
char s [80];
for(;;) {
cout << "Введите строку: ";gets (s);
if(!strcmp("Выход", s)) break;
}
return 0;
}
strlen(s);
Здесь s — строка. Функция strlen() возвращает длину строки, указанной аргументом s.
При выполнении следующей программы будет показана длина строки, введенной с клавиатуры.
#include <iostream>
#include <cstdio>
#include <cstring> using namespace std; int main()
{
char str[80];
cout << "Введите строку: "; gets(str);
cout << "Длина строки равна: " << strlen(str);
return 0;
}
// Отображение строки в обратном порядке.
#include <iostream>
#include <cstdio>
#include <cstring> using namespace std; int main()
{
char str[80];
int i;
cout << "Введите строку: ";
gets(str);
for(i=strlen(str)-1; i>=0; i--)
cout << str[i];
return 0;
}
#include <iostream>
#include <cstdio>
#include <cstring> using namespace std; int main()
{
char s1[80], s2 [80];
cout << "Введите две строки: ";
gets (s1); gets(s2);
cout << "Их длины равны: " << strlen (s1);
cout << ' '<< strlen(s2) << '\n';
if(!strcmp(s1, s2)) cout << "Строки равны \n";
else cout << "Строки не равны \n";
strcat(s1, s2);
cout << s1 << '\n';
strcpy(s1, s2);
cout << s1 << " и " << s2 << ' ';
cout << "теперь равны\n";
return 0;
}
Если запустить эту программу на выполнение и по приглашению ввести строки "привет" и "всем", то она отобразит на экране следующие результаты:
Их длины равны: 6 4
Строки не равны
привет всем
всем и всем теперь равны
// Преобразование символов строки в их
прописные эквиваленты.
#include <iostream>
#include <cstring> #include <cctype> using namespace std; int main()
{
char str[80];
int i;
strcpy(str, "test");
for(i=0; str[i]; i++) str[i] =
toupper(str[i]);
cout << str;
return 0;
}