Finished Exercise 4-1

This commit is contained in:
kdeng00
2020-11-03 21:34:46 -05:00
parent 2b74d5ec42
commit faa919d6ed
5 changed files with 99 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
gcc main.c kstrindex.c -I. -std=gnu99 -o a.out
+34
View File
@@ -0,0 +1,34 @@
#include <stdio.h>
#include "kstrindex.h"
int KStrIndex_strindex(char s[], char t[])
{
// Defaults to negative
int result = -1;
int i = 0, k = 0;
int j = 0;
for (i = 0; s[i] != '\0'; ++i)
{
for (j = i, k = 0; t[k] != '\0'; ++j, ++k)
{
if (s[j] != t[k])
{
break;
}
}
// Found starting index of t in s. As the look continues,
// there is a check to see if the string matches. This
// ensures that the right-most index is found.
if (k > 0 && t[k] == '\0')
{
result = i;
}
}
return result;
}
+7
View File
@@ -0,0 +1,7 @@
#include <stdlib.h>
// Returns the right most index of t found in s.
// Returns -1 if t is not found in s.
int KStrIndex_strindex(char s[], char t[]);
+39
View File
@@ -0,0 +1,39 @@
/*
*
* Exercise 4-1. Write the function strindex(s,t) which returns the position
* of the rightmost occurrence of t in s, or -1 if there is none
*
* Author: Kun Deng
*/
#include <stdio.h>
#include <float.h>
#include <kstrindex.h>
#define ARRAY_SIZE 99900000
int main()
{
char s[] = "this is not the end, but it might as well be.The time is nigh. The end will befall all of us. The end.\0";
char t[] = "end\0";
printf("Searching for string: %s\nIn: %s\n", t, s);
const int index = KStrIndex_strindex(s, t);
if (index == -1)
{
printf("String %s was not found\n", t);
return -1;
}
printf("String: %s\n", s);
printf("Sub String: %s\n", t);
printf("Index %d\n", index);
return 0;
}