Files
college-C/11/ex3.c
2022-02-25 15:33:16 +02:00

68 lines
2.6 KiB
C

#include "IdanStringPointersLib.h"
#include <stdio.h>
#define ROW 2
#define COL 2
BOOLEAN StringIsSubstringInVec(char * ptr_vec, char * ptr_string) // Lenght vector = COL
{
char *strings_amount = ptr_vec + (COL * MAX_SIZE_STRING);
for (;ptr_vec < strings_amount && !(ptr_vec != ptr_string) * StringBInStringA(ptr_vec, ptr_string); ptr_vec += MAX_SIZE_STRING);
return ((ptr_vec != ptr_string) * StringBInStringA(ptr_vec, ptr_string));
}
BOOLEAN StringIsSubstringInMat(char * ptr_mat, char * ptr_string) // Lenght = ROW
{
unsigned int step = COL * MAX_SIZE_STRING;
char *vectors_amount = ptr_mat + (ROW * step);
for (; ptr_mat < vectors_amount && !((ptr_mat != ptr_string) * StringIsSubstringInVec(ptr_mat, ptr_string)); ptr_mat += step);
return ((ptr_mat != ptr_string) * StringIsSubstringInVec(ptr_mat, ptr_string));
}
BOOLEAN HaveSubstringInVec(char * ptr_mat, char * ptr_vec) // בודק בווקטור אם אחד האיברים הוא תת מחרוזת במטריצה
{
char *strings_amount = ptr_vec + (COL * MAX_SIZE_STRING);
for (; ptr_vec < strings_amount && !(StringIsSubstringInMat(ptr_mat, ptr_vec)); ptr_vec += MAX_SIZE_STRING);
return (StringIsSubstringInMat(ptr_mat, ptr_vec));
}
BOOLEAN HaveSubstringInMat(char * ptr_mat) // בודק אם קיימת תת מחרוזת במטריצה למחרוזת במטריצה
{
unsigned int step = COL * MAX_SIZE_STRING;
char *vectors_amount = ptr_mat + (ROW * step);
char *ptr_temp_mat = ptr_mat;
for (; ptr_mat < vectors_amount && !(HaveSubstringInVec(ptr_temp_mat, ptr_mat)); ptr_mat += step);
return (HaveSubstringInVec(ptr_temp_mat, ptr_mat));
}
//---------------------------------------------------------------------------------------
// EX #3
// -----
//
// General : The program gets a matrix of string and checks if one of the string is a
// substring to another string
//
// Input : matrix of string
//
// Process : The program runs on a string and if he is a substring of one of the other
// string till it is out of string to check
//
// Output : True or False
//
//---------------------------------------------------------------------------------------
// Programmer : Cohen Idan
// Student No : 211675038
// Date: 19.11.2019
//---------------------------------------------------------------------------------------
void main(void)
{
typedef char string[MAX_SIZE_STRING];
string mat[ROW][COL] = { {"hello", "world"} , { "idan", "hel"}};
printf("%hu\n", HaveSubstringInMat(mat));
}