Хелпикс

Главная

Контакты

Случайная статья





Данные для тестирования. Текст программы



Данные для тестирования

Тестирование должно обеспечить проверку работоспособности функций для всех вариантов входных данных. Входные данные, на которых должно проводиться тестирование, сведены в таблицу:

вариант  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 пусто

Текст программы

include "stdafx.h"

 

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <iostream>

 

#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;

 }

/*************************************************/

int _tmain(int argc, _TCHAR* argv[])

 {

 char ss[N], dd[N];

 int n, l;

 system("cls");

 printf("input str\n");

 gets(ss);

 printf("begin=");

 scanf("%d",&n);

 printf("size=");

 scanf("%d",&l);

 printf("array:\n");

 if (substr_mas(ss,dd,n,l)) printf(">>%s<<\n>>%s<<\n",ss,dd);

 else printf("error! >>%s<<\n",dd);

 dd[0]='\0';

 printf("adress arifmetika:\n");

 if (substr_ptr(ss,dd,n,l)) printf(">>%s<<\n>>%s<<\n",ss,dd);

 else printf("error! >>%s<<\n",dd);

 getch();

return 0;

}

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.