Символьные массивы – строки. Функции для работы с текстом. Двумерные массивы – матрицы

Страницы работы

Содержание работы

1.   

2.  Символьные массивы – СТРОКИ   2

3.  Варианты заданий  4

4.  Функции для работы с текстом   6

5.  Вопросы  для самоконтроля  8

6.  Двумерные массивы – МАТРИЦЫ   9

7.  Варианты заданий  11

8.  Вопросы  для самоконтроля  12

Символьные массивы – СТРОКИ

Массив - поименованный набор элементов одного типа, располагающихся в последовательных ячейках памяти. Элементы массива нумеруются от 0 до N-1, где N – количество элементов.

#define N 20

. . .

int i, n, array [N];

float mas [] = {1.75, 0.27, 17.892, -0.379,123.56};

. . .

for (i = 0; i < N; i++) array [i] = i+1;

. . .

n = sizeof (mas) / sizeof (float);

for (i = 0; i < n; i++) mas [i] *= 10;

. . .

Каждый элемент имеет свой номер, доступ к нему осуществляется через имя массива и индекс.

Имя массива является константой и рассматривается как адрес первого элемента массива.

Для ведения записи характеристик массива, компилятор задает таблицу, называемую дескриптором массива. Таблица включает следующую информацию:

Начальный адрес массива                 array

Количество элементов массива          N

Размер элемента                              sizeof (int)

Строкой называется  последовательность   символов, ограниченная символом с кодом 0, то есть '\0'. Особенности:

строка хранится в массиве символов,  который может быть  инициализирован при описании,  а  может  быть заполнен программно:

    char A[] = { 'С','т','р','о','к','а','\0' };

    . . .

    int  i;

    char B[N];

    for (i=0; i<N; i++) B[i] = 'A' + i;

    B [N] = '\0';

строка имеет переменную размерность, ограниченную символом '\0'. Работать с ней  можно, просматривая от  начала до конца, пока не встретится символ '\0':

for (i=0; B[i] !='\0'; i++)...

соответствие  размерности  массива  и длины строки транслятором не контролируется, за  это  несет  ответственность программист, её написавший.

Способы определения строк:

-  массив типа char                     char A[] = { 'С','т','р','о','к','а','1','\0' };

-  массив типа char                     char B[] = “строка 2”;

-  указатель на тип char               char *C = “строка 3”;

-  указатель на тип char               char *D = { “строка 4” };

-  указатель на тип char               char *E ( “строка 5” );

-  массив указателей на строки       char *text[] = {“String 1”, “ String 2”};

Пример 1. Напечатать заданную строку, удалив из неё повторные вхождения каждого символа.

#include<stdio.h>

#define L 80

void main()

{

 char s[L];

 int i, j, k;

 puts("Введи строку");

 gets(s);

 for (i=0; s[i] != '\0'; i++)

{ j=i+1;

   while (s[j] != '\0')

                { if(s[i] == s[j])                                                 // нашли дубликат

                        for (k=j; s[k]!='\0'; k++)    s[k] = s[k+1];     //затираем символ

                   else j++;

                }

}

puts("Результат:");

puts(s);

}

Пример 2. Введенное натуральное число записать в виде строки.

#include<stdio.h>

#define L 20

void main()

{

 char s[L], t;

 int i = 0, k, n;

 long int number;

 printf("\n Enter : ");

 scanf("%ld", &number);

 while(number != 0)

        {

          s[i]='0'+(number%10);

          number /= 10;

          i++;

}

 s[i] = '\0';

 for(k = 0, n = i-1; k<i/2; k++, n--)  { t = s[k]; s[k] = s[n]; s[n] = t;}

 puts(s);

}

Варианты заданий

1.  Определить, какие из цифр 0..9 есть в строке.

2.  Определить, сколько раз встречается в строке заданный символ.

3.  Заменить в строке знаки препинания .,: на пробелы.

4.  Удалить из строки последнее слово (слова разделены пробелами).

5.  Заменить в строке символ ch1 на ch2.

6.  Заменить в строке каждую группу стоящих рядом точек одной точкой.

7.  Заменить в строке каждую точку многоточием, т.е. тремя точками.

8.  Подсчитать количество появлений в строке пар символов ,- .

9.  Вывести на экран все пары стоящих рядом в строке одинаковых символов.

10.  В строке перед каждым символом цифры вставить символ #.

11.  В строке заменить первую букву каждого слова на заглавную, слова разделены пробелами.

12.  В строке заменить каждый пробел двумя символами ,- .

13.  Исключить из строки заданный символ.

14.  Подсчитать в строке количество символов, отличных от пробела.

15.  Подсчитать в строке количество символов цифр.

16.  Подсчитать в строке количество символов, которые не являются цифрами.

17.  В строке удалить все символы, предшествующие заданному символу.

18.  В строке после заданного символа удалить К символов.

19.  В строке продублировать заданный символ.

20.  Из строки исключить все появления пары заданных символов.

Похожие материалы

Информация о работе

Предмет:
Моделирование
Тип:
Методические указания и пособия
Размер файла:
38 Kb
Скачали:
0