Main Page | Directories | File List | Globals

strings.c

Go to the documentation of this file.
00001 /*
00002  * kernel_libs/other/strings.c
00003  *
00004  * Copyright (c) 2003-2004 Lukasz Dembinski <dembol@nasa.com.pl>
00005  * All Rights Reserved
00006  * 
00007  * Date:        2004/01
00008  * Author:      Lukasz Dembinski
00009  * Info:        strings.c core file
00010  * Contact:     mailto: <dembol@nasa.com.pl>
00011  *
00012  */
00013 
00014 #include <agnix/agnix.h>
00015 
00016 #define STRINGS_MAX_LEN         4096
00017 
00018 int strlen(char *buf)
00019 {
00020     int i;
00021 
00022     if (buf[0] == 0)
00023         return 0;
00024 
00025     for(i = 0; i < STRINGS_MAX_LEN; i++) {
00026         if (buf[i] == 0)
00027             return i;// - 1;
00028     }
00029     
00030     return -1;
00031 }
00032 
00033 int strcmp(char *a, char *b)
00034 {
00035     int i;
00036 
00037     for (i = 0; i < STRINGS_MAX_LEN; i++, a++, b++) {
00038         if (*a != *b)
00039             return -1;
00040         
00041         if (*a == 0)
00042             return 0;
00043     }
00044     
00045     return 0;
00046 }
00047 
00048 int word_len(char *buf, int max_len)
00049 {
00050     int len;
00051     
00052     for (len = 0; len < max_len; len++) {
00053         if ((buf[len] == ' ') || (buf[len] == '\n'))
00054             return len;
00055     }
00056     
00057     return len;
00058 }
00059 
00060 char *word_next(char *buf, int max_len)
00061 {
00062     int end;
00063     int len;
00064     
00065     end = 0;
00066     for (len = 0; len < max_len; len++) {
00067         if (buf[len] == ' ') {
00068             end = 1;
00069             continue;
00070         }
00071 
00072         if ((buf[len] == 0) || (buf[len] == '\n'))
00073             return NULL;
00074         
00075         if ((buf[len] != ' ') && (end))
00076             return &buf[len];
00077     }
00078     
00079     return NULL;
00080 }
00081 
00082 int word_cmp(char *a, char *b, int max_len)
00083 {
00084     int len;
00085 
00086     for (len = 0; len < max_len; len++, a++, b++) {
00087         
00088         if (((*a == ' ') || (*a == '\n') || (*a == 0)) && 
00089             ((*b == ' ') || (*b == '\n') || (*b == 0)))
00090             return 0;
00091 
00092         if (*a != *b)
00093             return -1;
00094     }
00095     
00096     return -1;
00097 }
Dokumentacje wygenerowano programem Doxygen 1.4.2 dla projektu Agnix