Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Microsoft_Visual_C++..doc
Скачиваний:
18
Добавлен:
29.10.2018
Размер:
691.2 Кб
Скачать

4 Символьные массивы

Массив символов представляет собой строку. Это означает, что символы в строке можно представить себе расположенными в соседних ячейках памяти – по одному символу в ячейке. Для отметки конца строки используется нуль-символ. Нуль-символ не цифра; он не выводится на печать и в таблице ASCII имеет номер 0. Наличие нуль-символа означает, что количество ячеек массива должно быть по крайней мере на одну больше, чем число символов, которые необходимо размещать в памяти.

Это важно

Для работы с символьными массивами необходимо подключить библиотеку <string.h>.

Описание символьного массива из 10 ячеек памяти, в каждую из которых можно поместить один элемент типа char:

char str[10];

При определении массива необходимо сообщить компилятору требуемый размер памяти. Один из способов сделать это – инициализировать массив при помощи строковой константы. Так как автоматические массивы инициализировать нельзя, необходимо для этого использовать статические или внешние массивы.

Пример 7 Описание символьного массива

#include "stdafx.h"

#include <stdio.h>

#include <conio.h>

#include <string.h>

using namespace System;

int main(array<System::String ^> ^args)

{

char name[50];

printf("Введите имя\n");

scanf("%s",name);

printf("Красивое имя, %s!\n",name);

getch();

return 0;

}

Тестирование:

В примере 7 задан массив из 50 ячеек памяти, в каждую из которых можно поместить один элемент типа char. Это нами осуществлено с помощью оператора описания:

char name[50];

Можно воспользоваться более сложным оператором описания:

static char name[50];

Для ввода строки в примере 7 используется функция scanf() со спецификатором формата %s.

Задание 7

Выполните программу примера 7.

Над строками определены следующие функции (табл. 1)

Таблица 1 – Функции над строками

Функция

Назначение

gets()

Данная функция получает строку от устройства ввода – клавиатуры. Поскольку строка не имеет заранее заданной длины, функция gets() должна знать, когда ей прекратить работу. Функция читает символы до тех пор, пока не встретится ей символ новой строки, который можно создать, нажав клавишу ENTER. Функция берет все символы до символа новой строки, присоединяет к ним нуль-символ и передает строку управляющей программе

puts()

Любая строка, выводимая этой функцией, начинается с новой строки. Если функция puts() находит завершающий нуль-символ, она заменяет его символом новой строки и затем выводит строку

strcat()

Использует в качестве аргументов две строки. Ее функция заключается в том, чтобы копию второй строки присоединить к концу первой. Это объединений становится новой первой строкой, а вторая строка остается без изменения

strcmp()

Использует в качестве аргументов либо две строковые константы, либо два указателя строк в качестве аргументов и возвращает значение 0, если строки одинаковы. Все остальные результаты объяснимы так: функция возвращает разницу между двумя символами в коде ASCII. Она продвигается вдоль строк до тех пор, пока не находят первую пару несовпадающих символов; затем она возвращает разницу в кодах.

strcopy()

Данная функция предназначена для копирования строки или адреса строки.

strlen()

Данная функция получает длину строки

strstr()

Функция сравнения строк

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]