Finished Exercise 4-1
This commit is contained in:
Executable
+5
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
gcc main.c kstrindex.c -I. -std=gnu99 -o a.out
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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[]);
|
||||||
|
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* Exercise 4-
|
||||||
|
*
|
||||||
|
* Author: Kun Deng
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user