| version 1.4, 2001/10/21 16:44:22 |
version 1.5, 2001/12/08 18:23:53 |
|
|
| #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; |
| } |
} |