Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Данные для тестирования
Тестирование должно обеспечить проверку работоспособности функций для всех вариантов входных данных. Входные данные, на которых должно проводиться тестирование, сведены в таблицу: вариант src num len dest 1 012345 2 2 23 012345 0 1 0 012345 0 6 012345 2 012345 5 3 5 012345 2 6 2345 012345 0 7 012345 3 012345 8 2 пусто 4 012345 -1 2 пусто 012345 5 0 пусто 012345 5 -1 пусто Текст программы /*************************************************/ /******** Файл LAB1.C **************************/ #include <stdio.h> #define N 80 /**************************************************/ /* Функция выделения подстроки (массивы) */ /*************************************************/ int substr_mas(char src[N],char dest[N],int num,int len){ int i, j; /* проверка случая 4 */ if ((num<0)||(len<=0)) { dest[0]=0; return 0; } /* выход на num-ый символ */ for (i=0; i<=num; i++) /* проверка случая 3 */ if (src[i]=='\0') { dest[0]=0; return 0; } /* перезапись символов */ for (i--, j=0; j<len; j++, i++) { dest[j]=src[i]; /* проверка случая 2 */ if (dest[j]=='\0') return 1; } /* запись признака конца в выходную строку */ dest[j]='\0'; return 1; } /*************************************************/ /* Функция выделение подстроки */ /* (адресная арифметика) */ /************************************************/ int substr_ptr(char *src, char *dest, int num, int len) { /* проверка случая 4 */ if ((num<0)||(len<=0)) return dest[0]=0; /* выход на num-ый символ или на конец строки */ while (num-- && *src++); /* проверка случая 3 */ if (!num) return dest[0]=0; /* перезапись символов */ while (len-- && *src) *dest++=*src++; /* запись признака конца в выходную строку */ *dest=0; return 1; } /*************************************************/ main() { char ss[N], dd[N]; int n, l; clrscr(); printf("Вводите строку:\n"); gets(ss); printf("начало="); scanf("%d",&n); printf("длина="); scanf("%d",&l); printf("Массивы:\n"); if (substr_mas(ss,dd,n,l)) printf(">>%s<<\n>>%s<<\n",ss,dd); else printf("Ошибка! >>%s<<\n",dd); dd[0]='\0'; printf("Адресная арифметика:\n"); if (substr_ptr(ss,dd,n,l)) printf(">>%s<<\n>>%s<<\n",ss,dd); else printf("Ошибка! >>%s<<\n",dd); getch(); } : Лабораторная работа №2. Цель работы Получение практических навыков в использовании указателей и динамических объектов в языке C, создание модульных программ и обеспечение инкапсуляции. Date: 2015-05-22; view: 771; Нарушение авторских прав |