aboutsummaryrefslogtreecommitdiff
path: root/run
diff options
context:
space:
mode:
authorAtanas Filipov <afilipov@users.noreply.github.com>2018-07-08 17:52:05 +0300
committerAtanas Filipov <it.feel.filipov@gmail.com>2018-07-10 21:02:26 +0300
commitea628b4d207f9ffd5bdd8b4bf6d4378b46268b98 (patch)
treef2d34e9938817a8f1b7fa49e8a0fd66352927d89 /run
Initial commitHEADmaster
Diffstat (limited to 'run')
-rw-r--r--run/demo_charfreq.c57
-rw-r--r--run/demo_strcat.c45
-rw-r--r--run/demo_strchr.c45
-rw-r--r--run/demo_strcmp.c48
-rw-r--r--run/demo_strcpy.c45
-rw-r--r--run/demo_strlen.c44
-rw-r--r--run/demo_strncat.c45
-rw-r--r--run/demo_strncmp.c48
-rw-r--r--run/demo_strncpy.c45
-rw-r--r--run/demo_strrchr.c45
-rw-r--r--run/demo_strstr.c44
11 files changed, 511 insertions, 0 deletions
diff --git a/run/demo_charfreq.c b/run/demo_charfreq.c
new file mode 100644
index 0000000..b48f52e
--- /dev/null
+++ b/run/demo_charfreq.c
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2018, LopeDeVega Research group. All rights reserved.
+ *
+ * Authors:
+ * Atanas Filipov, it.feel.filipov@gmail.com
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <estring.h>
+
+int main(int argc, char *argv[])
+{
+ char ch;
+ char *ptr = argv[1];
+ int frequency = 0;
+
+ if (argc == 3) {
+
+ ch = *(argv[2]);
+
+ while (*ptr != '\0') {
+ if(ch == *ptr++) {
+ ++frequency;
+ }
+ }
+ printf("Frequency of '%c' is %d\n", ch, frequency);
+
+ } else {
+ printf("Usage: demo_strlen <first string> <char to be counted>\n");
+ }
+
+ return 0;
+}
diff --git a/run/demo_strcat.c b/run/demo_strcat.c
new file mode 100644
index 0000000..96dda1d
--- /dev/null
+++ b/run/demo_strcat.c
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2018, LopeDeVega Research group. All rights reserved.
+ *
+ * Authors:
+ * Atanas Filipov, it.feel.filipov@gmail.com
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <estring.h>
+
+int main(int argc, char *argv[])
+{
+ if (argc == 3) {
+ strcat(argv[1], argv[2]);
+ printf("Output string after concatenation: %s\n", argv[1]);
+ } else {
+ printf("Usage: demo_strlen <first string> <second string>\n");
+ }
+
+ return 0;
+}
diff --git a/run/demo_strchr.c b/run/demo_strchr.c
new file mode 100644
index 0000000..69f6e12
--- /dev/null
+++ b/run/demo_strchr.c
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2018, LopeDeVega Research group. All rights reserved.
+ *
+ * Authors:
+ * Atanas Filipov, it.feel.filipov@gmail.com
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <estring.h>
+
+int main(int argc, char *argv[])
+{
+ if (argc == 3) {
+ char c = *(argv[2]);
+ printf("Found char: %s %s\n", argv[1], strchr(argv[1], c));
+ } else {
+ printf("Usage: demo_strlen <first string> <char>\n");
+ }
+
+ return 0;
+}
diff --git a/run/demo_strcmp.c b/run/demo_strcmp.c
new file mode 100644
index 0000000..cf9677d
--- /dev/null
+++ b/run/demo_strcmp.c
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) 2018, LopeDeVega Research group. All rights reserved.
+ *
+ * Authors:
+ * Atanas Filipov, it.feel.filipov@gmail.com
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <estring.h>
+
+int main(int argc, char *argv[])
+{
+ if (argc == 3) {
+ if (strcmp(argv[1], argv[2]) == 0) {
+ printf("string 1 and string 2 are equal\n");
+ } else {
+ printf("string 1 and 2 are different\n");
+ }
+ } else {
+ printf("Usage: demo_strlen <first string> <second string>\n");
+ }
+
+ return 0;
+}
diff --git a/run/demo_strcpy.c b/run/demo_strcpy.c
new file mode 100644
index 0000000..23c5326
--- /dev/null
+++ b/run/demo_strcpy.c
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2018, LopeDeVega Research group. All rights reserved.
+ *
+ * Authors:
+ * Atanas Filipov, it.feel.filipov@gmail.com
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <estring.h>
+
+int main(int argc, char *argv[])
+{
+ if (argc == 3) {
+ strcpy(argv[1], argv[2]);
+ printf("Output string after copy: %s\n", argv[1]);
+ } else {
+ printf("Usage: demo_strlen <first string> <second string>\n");
+ }
+
+ return 0;
+}
diff --git a/run/demo_strlen.c b/run/demo_strlen.c
new file mode 100644
index 0000000..7ec8a8b
--- /dev/null
+++ b/run/demo_strlen.c
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) 2018, LopeDeVega Research group. All rights reserved.
+ *
+ * Authors:
+ * Atanas Filipov, it.feel.filipov@gmail.com
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <estring.h>
+
+int main(int argc, char *argv[])
+{
+ if (argc > 1) {
+ printf("Length of string '%s' is: %d\n", argv[1], strlen(argv[1]));
+ } else {
+ printf("Usage: demo_strlen <your_string>\n");
+ }
+
+ return 0;
+}
diff --git a/run/demo_strncat.c b/run/demo_strncat.c
new file mode 100644
index 0000000..ed51c97
--- /dev/null
+++ b/run/demo_strncat.c
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2018, LopeDeVega Research group. All rights reserved.
+ *
+ * Authors:
+ * Atanas Filipov, it.feel.filipov@gmail.com
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <estring.h>
+
+int main(int argc, char *argv[])
+{
+ if (argc == 3) {
+ strncat(argv[1], argv[2], 4);
+ printf("Output string after concatenation[4]: %s\n", argv[1]);
+ } else {
+ printf("Usage: demo_strlen <first string> <second string>\n");
+ }
+
+ return 0;
+}
diff --git a/run/demo_strncmp.c b/run/demo_strncmp.c
new file mode 100644
index 0000000..820157a
--- /dev/null
+++ b/run/demo_strncmp.c
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) 2018, LopeDeVega Research group. All rights reserved.
+ *
+ * Authors:
+ * Atanas Filipov, it.feel.filipov@gmail.com
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <estring.h>
+
+int main(int argc, char *argv[])
+{
+ if (argc == 3) {
+ if (strncmp(argv[1], argv[2], 8) == 0) {
+ printf("string 1 and string 2 are equal\n");
+ } else {
+ printf("string 1 and 2 are different\n");
+ }
+ } else {
+ printf("Usage exmaple: demo_strlen BeginnersBook BeginnersBook.COM\n");
+ }
+
+ return 0;
+}
diff --git a/run/demo_strncpy.c b/run/demo_strncpy.c
new file mode 100644
index 0000000..f9351e8
--- /dev/null
+++ b/run/demo_strncpy.c
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2018, LopeDeVega Research group. All rights reserved.
+ *
+ * Authors:
+ * Atanas Filipov, it.feel.filipov@gmail.com
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <estring.h>
+
+int main(int argc, char *argv[])
+{
+ if (argc == 3) {
+ strncpy(argv[1], argv[2], 4);
+ printf("Output string after copy[4]: %s\n", argv[1]);
+ } else {
+ printf("Usage: demo_strlen <first string> <second string>\n");
+ }
+
+ return 0;
+}
diff --git a/run/demo_strrchr.c b/run/demo_strrchr.c
new file mode 100644
index 0000000..8a559b1
--- /dev/null
+++ b/run/demo_strrchr.c
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2018, LopeDeVega Research group. All rights reserved.
+ *
+ * Authors:
+ * Atanas Filipov, it.feel.filipov@gmail.com
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <estring.h>
+
+int main(int argc, char *argv[])
+{
+ if (argc == 3) {
+ char c = *(argv[2]);
+ printf("Found char: %s %s\n", argv[1], strrchr(argv[1], c));
+ } else {
+ printf("Usage: demo_strlen <first string> <char>\n");
+ }
+
+ return 0;
+}
diff --git a/run/demo_strstr.c b/run/demo_strstr.c
new file mode 100644
index 0000000..6a70b55
--- /dev/null
+++ b/run/demo_strstr.c
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) 2018, LopeDeVega Research group. All rights reserved.
+ *
+ * Authors:
+ * Atanas Filipov, it.feel.filipov@gmail.com
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <estring.h>
+
+int main(int argc, char *argv[])
+{
+ if (argc == 3) {
+ printf("Found string: %s\n", strstr(argv[1], argv[2]));
+ } else {
+ printf("Usage: demo_strlen <first string> <second string>\n");
+ }
+
+ return 0;
+}