📄 sestring.c
字号:
/* * This file is part of the Seyon, Copyright (c) 1992-1993 by Muhammad M. * Saggaf. All rights reserved. * * See the file COPYING (1-COPYING) or the manual page seyon(1) for a full * statement of rights and permissions for this program. */#include <ctype.h>#include "config.h"#include "SeDecl.h"char *str_strip_lead_end_space(), *str_strip_lead_space(), *str_strip_end_space();/* * string routines */charitoa(num) int num;{ char buf[TIN_BUF]; sprintf(buf, "%d", num); return buf[0];}/* * replace unwanted characters with something else */char *str_filter(str, unwanted, replacement) char *str, *unwanted; char replacement;{ int i, j; for (i = 0; str[i]; i++) for (j = 0; unwanted[j]; j++) if (str[i] == unwanted[j]) str[i] = replacement; return str;}/* * strip spaces from both ends of a string */char *str_strip_lead_end_space(str) char *str;{ return str_strip_lead_space(str_strip_end_space(str));}/* * strip spaces from the beginning a string */char *str_strip_lead_space(str) char *str;{ int i; for (i = 0; isspace(str[i]); i++); return str + i;}/* * strip spaces from the end a string */char *str_strip_end_space(str) char *str;{ int i; for (i = strlen(str) - 1; isspace(str[i]) && i; i--); str[++i] = '\0'; return str;}char *str_stripspc_copy(dest, source) char *dest, *source;{ char buffer[REG_BUF], *bufptr; strcpy(buffer, source); bufptr = str_strip_lead_end_space(buffer); return strcpy(dest, bufptr);}char *str_strip_end_char(str) char *str;{ int length; length = strlen(str); str[length - 1] = '\0'; return str;}char*StripSpace(str) char *str;{ static char strBuf[LRG_BUF]; str_stripspc_copy(strBuf, str); return strBuf;}char*FmtString(fmt, a, b, c) char *fmt, *a, *b, *c;{ static char strBuf[LRG_BUF]; sprintf(strBuf, fmt, a, b, c); return strBuf;} /* * find first occurance of str2 in str1 and return a pointer to it */#if !HAVE_STRSTRchar *strstr(str1, str2) char *str1, *str2;{ char *Sptr, *Tptr; int len = strlen(str1) - strlen(str2) + 1; if (*str2) for (; len > 0; len--, str1++) { if (*str1 != *str2) continue; for (Sptr = str1, Tptr = str2; *Tptr != '\0'; Sptr++, Tptr++) if (*Sptr != *Tptr) break; if (*Tptr == '\0') return str1; } return NULL;}#endifchar *strsqtok(str) char *str;{ char *line, *wrd; static char *saved_ptr; if (str == NULL) line = saved_ptr; else line = str; while (isspace(*line) && *line) line++; if (*line == '\0') return NULL; else if (*line == '\"') for (wrd = ++line; *line != '\"' && *line; line++); else for (wrd = line; !isspace(*line) && *line; line++); if (*line == '\0') saved_ptr = line; else saved_ptr = line + 1; *line = '\0'; return wrd;}/* * return the first word of a string and set the start of the string * to point to the next one *//* * WARNING: words returned by this routine are not null-termnated */char *str_parse(buf) char **buf;{ char *line, *wrd; /* * Remember: *buf is a pointer to the string, **buf is a character * in the string */ line = *buf; while (isspace(*line) && *line) line++; if (!(*line)) return NULL; else if (*line == '\"') { for (wrd = ++line; *line != '\"' && *line; line++); *line = '\0'; line++; } else for (wrd = line; !isspace(*line) && *line; line++); *buf = line; return wrd;}/* * this routine is not currently used, and I'm not if it works */char *get_word(str, word) char *str, *word;{ char *wrd, c; while (isspace(*str) && *str) str++; if (!(*str)) word[0] = '\0'; else if (*str == '\"') { for (wrd = ++str; *str != '\"' && *str; str++); *str = '\0'; strcpy(word, wrd); *str = '\"'; str++; } else { for (wrd = str; !isspace(*str) && *str; str++); c = *str; *str = '\0'; strcpy(word, wrd); *str = c; } return str;}#if !HAVE_STRERRORchar *strerror(err) int err;{ extern char *sys_errlist[]; return sys_errlist[err];}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -