История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Топ:
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Интересное:
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Дисциплины:
2023-01-02 | 18 |
5.00
из
|
Заказать работу |
|
|
Объявление строки
• Обращение к элементам строки осуществляется по индексу, так же как и к элементу массива. Соответственно и нумерация символов начинается с 0.
• Операция присваивания одной строки другой не определена и может выполняться с помощью цикла или функций стандартной библиотеки <string.h>
char src[10], dest[10];
for (int i = 0; i <= strlen (src); i++) dest[i] = src[i];
Строки
• Стандартная библиотека предоставляет возможности копирования, сравнения, объединения строк, поиска подстроки, определения длины строки и т.д.
• Библиотечные функции работы со строками С объявлены в стандарте устаревшими, так как они не обеспечивают необходимой безопасности.
<string.h> (<cstring>) — функции работы со строками в стиле С
<string.h> (<cstring>) — функции работы со строками в стиле С
<string.h> (<cstring>) — функции работы со строками в стиле С
Строки
#include <stdio.h>
#include <string.h>
int main(){
char s[5], passw[] = "kuku";
int i, k = 0;
for (i = 0;!k && i<3; i++){
printf("\nвведите пароль:\n");
gets(s); if (strstr (s,passw))k = 1;
}
if (k) printf ("\ n пароль принят");
else printf ("\ n пароль не принят");
}
Строки
#include "stdafx.h"
#include <string.h>
#include <stdio.h>
char string[] = "A string \t of,,tokens \n and some more tokens";
char seps[] = ",\t\n", *token;
Void main(void)
{ token = strtok (string, seps);
while(token!= NULL)
{ printf("%s ", token);
token = strtok(NULL, seps);
} }
Результаты:
A string of tokens and some more tokens
Массивы строк
Char <Имя> [<Количество строк>]
[<Мах длина строки>] [= <Значение>];
char str [3][80] = {
{'1','2','3','4','5'},
{'x','y','z'},
{'A','B','C','D'}
};
char str2[3][80] = {
"0123456789",
"x_y_z",
"A B C D" };
Массивы строк
char ms[4][7]={″весна″,″осень″,
|
″зима″,″лето″};
Строки
• В С++ поддерживаются два типа строк – встроенный тип, доставшийся от С, и класс string из стандартной библиотеки С++.
• Класс string обеспечивает индексацию, присваивание, сравнение, добавление, объединение строк и поиск подстрок, а также преобразование из С-строк, то есть массивов типа char, в string, и наоборот.
Структуры
объединения
СТРУКТУРЫ ДАННЫХ
Структуры
• В отличие от массива, все элементы которого однотипны, структура может содержать элементы разных типов.
• В языке С++ структура является видом класса и обладает всеми его свойствами, но во многих случаях достаточно использовать структуры так, как они определены в языке С.
struct [ имя_типа ]
{ тип_1 элемент_1; тип_2элемент_2; *тип_n элемент_n;}
[ список_описателей ];
Структуры
• Элементы структуры называются полями структуры и могут иметь любой тип, кроме типа этой же структуры, но могут быть указателями на него.
• Если отсутствует имя типа, должен быть указан список описателей переменных, указателей или массивов.
Структуры
struct employee {
char Name [21]; // имя
char Surname [21]; // фамилия
Int age; // возраст
Double hourlysalary; // почасовой оклад
};
Идентификатор employee является именем-этикеткой (tag name), дескриптором, именует структуру и используется совместно с ключевым словом struct для объявления переменных структурного типа.
Структуры
struct employee new_employee,stack[120];
struct employee {
char Name [21]; // имя
char Surname [21]; // фамилия
Int age; // возраст
Double hourlysalary; // почасовой оклад
} new_employee, stack[120];
struct {
char Name [21]; // имя
char Surname [21]; // фамилия
Int age; // возраст
Double hourlysalary; // почасовой оклад
} new_employee, stack[120];
Структуры
Синтаксис инициализации структур аналогичен инициализации массивов.
При инициализации структуры ее элементы (инициализаторы) должны соответствовать заданному типу и отделяться друг от друга запятыми.
|
struct employee {
char Name [20];
char Surname [20];
Int age;
Double hourlysalary;
} new_employee =
{ "Peter", "Smith", 25, 6.78 };
Структуры
struct complex {
float real, im;
} compl [2][3]={
{{1, 1}, {1, 1}, {1, 1}},
{{2, 2}, {2, 2}, {2, 2}}
};
Для переменных одного и того же структурного типа определена операция присваивания, при этом происходит поэлементное копирование.
Структуры
#include <stdio.h>
int main(void){
struct {
int a;
int b;
} x, y;
x. a = 10;
y = x; /* присваивание одной структуры другой */
printf("%d", y.a);
return 0;
}
Структуры
Доступ к полям структуры выполняется с помощью операций выбора. (точка) при обращении к полю через имя структуры:
имя_переменной_структуры. имя_поля
new_employee. Name = «Петров ";
new_employee.hourlysalary = 21.0;
stack [4]. hourlysalary = 121.5;
Структуры
Как и в других массивах переменных языка С, в массивах структур индексирование начинается с нуля. Членами структуры могут быть также массивы или структуры. Когда одна структура является членом другой, она называется вложенной:
struct X = {
int A[7][8];
float b;
char ch;
struct employee Emp2;
} Y;
Структуры
Инициализация элементов двухмерного массива А может быть такой:
Y. A [2][5] = 99;
Инициализация вложенной структуры может быть следующей:
Y.Emp2.hourlysalary = 12.75;
struct A {int a; double x;};
struct B {A a; double x;} x[2];
x [0]. a. a = 1;
x [1].х = 0.1;
Объединения
Объединение (union) – это тип, который позволяет хранить различные типы данных в одном пространстве памяти (но не одновременно).
union <Имя объединения> {
<Список элементов объединения>}
[<Список переменных [и значений]>];
union mem {
double d;
long l;
int k[2];
};
Объединения
Длина объединения равна наибольшей из длин его полей. В каждый момент времени в переменной типа объединение хранится только одно значение, и ответственность за его правильное использование лежит на программисте.
|
|
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!