Platon Technologies
not logged in Login Registration
EnglishSlovak
open source software development celebrating 10 years of open source development! Saturday, October 17, 2026

Diff for libplaton/platon/str/strplus.c between version 1.4 and 1.5

version 1.4, 2001/10/21 16:44:22 version 1.5, 2001/12/08 18:23:53
Line 1 
Line 1 
 #include<string.h>  #include <string.h>
 #include<stdlib.h>  #include <stdlib.h>
   #include <ctype.h>
   
 #include "strplus.h"  #include "strplus.h"
 #include "strctype.h"  #include "strctype.h"
   
 char *strestr(const char *s1, const char *s2) {  char *strestr(const char *s1, const char *s2)
   {
         return strstr(s1,s2) == NULL ? NULL : strendstr(s1,s2);          return strstr(s1,s2) == NULL ? NULL : strendstr(s1,s2);
 }  }
   
Line 16  char *strestr(const char *s1, const char
Line 18  char *strestr(const char *s1, const char
  * binary, skip this section.   * binary, skip this section.
  */   */
   
 char *stristr(const char *s1, const char *s2) {  char *stristr(const char *s1, const char *s2)
   {
         char *a_s1, *a_s2;          char *a_s1, *a_s2;
         register char *ret;          register char *ret;
   
Line 40  char *stristr(const char *s1, const char
Line 43  char *stristr(const char *s1, const char
   
 #endif  #endif
   
 int strcnt(const char *str, const char c) {  int strcnt(const char *str, const char c)
   {
         register int i = 0;          register int i = 0;
   
         if (str != NULL)          if (str != NULL)
Line 51  int strcnt(const char *str, const char c
Line 55  int strcnt(const char *str, const char c
         return i;          return i;
 }  }
   
 int strcnt_str(const char *str, const char *substr) {  int strcnt_str(const char *str, const char *substr)
   {
         register char *s;          register char *s;
         register int count;          register int count;
   
Line 65  int strcnt_str(const char *str, const ch
Line 70  int strcnt_str(const char *str, const ch
         return count;          return count;
 }  }
   
 int strcnt_sepstr(const char *str, const char *substr) {  int strcnt_sepstr(const char *str, const char *substr)
   {
         register char *s;          register char *s;
         register int count, substr_size;          register int count, substr_size;
   
Line 81  int strcnt_sepstr(const char *str, const
Line 87  int strcnt_sepstr(const char *str, const
         return count;          return count;
 }  }
   
 char *strdel(char *s) {  char *strdel(char *s)
   {
         register int i;          register int i;
   
         for (i = 0; s[i] != '\0'; i++)          for (i = 0; s[i] != '\0'; i++)
Line 90  char *strdel(char *s) {
Line 97  char *strdel(char *s) {
         return s;          return s;
 }  }
   
 char *strrmlf(char *s) {  char *strrmlf(char *s)
         while (strchr(s, '\n') != NULL)  {
                 strdel(strchr(s, '\n'));          register char *p_lf;
   
           while ((p_lf = strchr(s, '\n')) != NULL)
                   strdel(p_lf);
   
           return s;
   }
   
   char *strrmcr(char *s)
   {
           register char *p_cr;
   
           while ((p_cr = strchr(s, '\r')) != NULL)
                   strdel(p_cr);
   
           return s;
   }
   
   char *str_left_trim(char *s)
   {
           register char *pos;
   
           for (pos = s; *pos != '\0' && isspace(*pos); pos++)
                   ;
   
           if (pos > s)
                   memmove((void *) s, (void *) pos, strlen(pos) + 1);
   
         return s;          return s;
 }  }
   
 char *strrmcr(char *s) {  char *str_right_trim(char *s)
         while (strchr(s, '\r') != NULL)  {
                 strdel(strchr(s, '\r'));          register char *pos;
   
           for (pos = s + (strlen(s) - 1); pos >= s && isspace(*pos); pos--)
                   ;
   
           *(pos + 1) = '\0';
   
         return s;          return s;
 }  }
   
 int strrcmp(const char *s1, const char *s2) {  int strrcmp(const char *s1, const char *s2)
   {
         register char *x1, *x2;          register char *x1, *x2;
   
         x1 = strchr(s1,'\0');          x1 = strchr(s1,'\0');
Line 131  int strrcmp(const char *s1, const char *
Line 170  int strrcmp(const char *s1, const char *
 int main(void) {  int main(void) {
   
         printf("strcnt(\"%s\", '%c') = %d\n",          printf("strcnt(\"%s\", '%c') = %d\n",
                                                         TESTSTR1, TESTSEP1,                          TESTSTR1, TESTSEP1,
                                                         strcnt(TESTSTR1, TESTSEP1));                          strcnt(TESTSTR1, TESTSEP1));
   
         printf("strcnt_str(\"%s\", \"%s\") = %d\n",          printf("strcnt_str(\"%s\", \"%s\") = %d\n",
                                                         TESTSTR1, TESTSEP2,                          TESTSTR1, TESTSEP2,
                                                         strcnt_str(TESTSTR1, TESTSEP2));                          strcnt_str(TESTSTR1, TESTSEP2));
   
         printf("strcnt_sepstr(\"%s\", \"%s\") = %d\n",          printf("strcnt_sepstr(\"%s\", \"%s\") = %d\n",
                                                         TESTSTR1, TESTSEP2,                          TESTSTR1, TESTSEP2,
                                                         strcnt_sepstr(TESTSTR1, TESTSEP2));                          strcnt_sepstr(TESTSTR1, TESTSEP2));
   
         return 0;          return 0;
 }  }

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

Platon Group <platon@platon.org> http://platon.org/
Copyright © 2002-2006 Platon Group
Site powered by Metafox CMS
Go to Top