⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 strlib.c

📁 一个使用anci c实现的ini处理程序
💻 C
字号:
/*-------------------------------------------------------------------------*//**  @file		strlib.c  @author	N. Devillard  @date		Jan 2001  @version	$Revision: 1.8 $  @brief	Various string handling routines to complement the C lib.  This modules adds a few complementary string routines usually missing  in the standard C library.*//*--------------------------------------------------------------------------*//*	$Id: strlib.c,v 1.8 2002/12/12 10:29:16 ndevilla Exp $	$Author: ndevilla $	$Date: 2002/12/12 10:29:16 $	$Revision: 1.8 $*//*---------------------------------------------------------------------------   								Includes ---------------------------------------------------------------------------*/#include <string.h>#include <ctype.h>#include "strlib.h"/*---------------------------------------------------------------------------   							    Defines	 ---------------------------------------------------------------------------*/#define ASCIILINESZ	1024/*---------------------------------------------------------------------------  							Function codes ---------------------------------------------------------------------------*//*-------------------------------------------------------------------------*//**  @brief	Convert a string to lowercase.  @param	s	String to convert.  @return	ptr to statically allocated string.  This function returns a pointer to a statically allocated string  containing a lowercased version of the input string. Do not free  or modify the returned string! Since the returned string is statically  allocated, it will be modified at each function call (not re-entrant). *//*--------------------------------------------------------------------------*/char * strlwc(char * s){    static char l[ASCIILINESZ+1];    int i ;    if (s==NULL) return NULL ;    memset(l, 0, ASCIILINESZ+1);    i=0 ;    while (s[i] && i<ASCIILINESZ) {        l[i] = (char)tolower((int)s[i]);        i++ ;    }    l[ASCIILINESZ]=(char)0;    return l ;}/*-------------------------------------------------------------------------*//**  @brief	Convert a string to uppercase.  @param	s	String to convert.  @return	ptr to statically allocated string.  This function returns a pointer to a statically allocated string  containing an uppercased version of the input string. Do not free  or modify the returned string! Since the returned string is statically  allocated, it will be modified at each function call (not re-entrant). *//*--------------------------------------------------------------------------*/char * strupc(char * s){    static char l[ASCIILINESZ+1];    int i ;    if (s==NULL) return NULL ;    memset(l, 0, ASCIILINESZ+1);    i=0 ;    while (s[i] && i<ASCIILINESZ) {        l[i] = (char)toupper((int)s[i]);        i++ ;    }    l[ASCIILINESZ]=(char)0;    return l ;}/*-------------------------------------------------------------------------*//**  @brief	Skip blanks until the first non-blank character.  @param	s	String to parse.  @return	Pointer to char inside given string.  This function returns a pointer to the first non-blank character in the  given string. *//*--------------------------------------------------------------------------*/char * strskp(char * s){    char * skip = s;	if (s==NULL) return NULL ;    while (isspace((int)*skip) && *skip) skip++;    return skip ;} /*-------------------------------------------------------------------------*//**  @brief	Remove blanks at the end of a string.  @param	s	String to parse.  @return	ptr to statically allocated string.  This function returns a pointer to a statically allocated string,  which is identical to the input string, except that all blank  characters at the end of the string have been removed.  Do not free or modify the returned string! Since the returned string  is statically allocated, it will be modified at each function call  (not re-entrant). *//*--------------------------------------------------------------------------*/char * strcrop(char * s){    static char l[ASCIILINESZ+1];	char * last ;    if (s==NULL) return NULL ;    memset(l, 0, ASCIILINESZ+1);	strcpy(l, s);	last = l + strlen(l);	while (last > l) {		if (!isspace((int)*(last-1)))			break ;		last -- ;	}	*last = (char)0;    return l ;}/*-------------------------------------------------------------------------*//**  @brief	Remove blanks at the beginning and the end of a string.  @param	s	String to parse.  @return	ptr to statically allocated string.  This function returns a pointer to a statically allocated string,  which is identical to the input string, except that all blank  characters at the end and the beg. of the string have been removed.  Do not free or modify the returned string! Since the returned string  is statically allocated, it will be modified at each function call  (not re-entrant). *//*--------------------------------------------------------------------------*/char * strstrip(char * s){    static char l[ASCIILINESZ+1];	char * last ;	    if (s==NULL) return NULL ;    	while (isspace((int)*s) && *s) s++;		memset(l, 0, ASCIILINESZ+1);	strcpy(l, s);	last = l + strlen(l);	while (last > l) {		if (!isspace((int)*(last-1)))			break ;		last -- ;	}	*last = (char)0;	return (char*)l ;}/* Test code */#ifdef TESTint main(int argc, char * argv[]){	char * str ;	str = "\t\tI'm a lumberkack and I'm OK      " ;	printf("lowercase: [%s]\n", strlwc(str));	printf("uppercase: [%s]\n", strupc(str));	printf("skipped  : [%s]\n", strskp(str));	printf("cropped  : [%s]\n", strcrop(str));	printf("stripped : [%s]\n", strstrip(str));	return 0 ;}#endif/* vim: set ts=4 et sw=4 tw=75 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -