You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

145 lines
4.6 KiB

/*=====================================================================================================================
Copyright(c) 2005 ORIGIN PLM Software Corp. All rights reserved.
Unpublished - All rights reserved
=======================================================================================================================
File description:
Filename: string_utils.h
Module : Common module.
This file includes some operations of the string.
=======================================================================================================================
Date Name Description of Change
14-Jul-2009 Ray Li Initialize creation
$HISTORY$
=====================================================================================================================*/
#ifndef STRING_UTILS_H
#define STRING_UTILS_H
#include <stringapiset.h>
#include <fclasses/tc_string.h>
#include <string>
#include <map>
#include <vector>
#include <tccore/workspaceobject.h>
using namespace std;
#ifdef __cplusplus
extern "C"
{
#endif
// @{{ String assister
#define IS_NULL(S) ((S)==NULL)
#define IS_EMPTY(S) (((S)==NULL) || !(*(S)))
// @}}
extern void Split( string strArg, string spliter, vector<string> &ans );
//extern void Split(string strArg, char spliter, vector<string> &ans);
/**
* Clones the string.
* @param dst - <OF> the output string.
* @param src - <I> the string to be cloned.
* @return - the destinatin string pointer.
*/
extern char* GSTR_clone( char **dst, const char *src );
/**
* Copy safely the string with null end.
* @param dst - <O> the output string.
* @param src - <I> the string to be cloned.
* @param dstSize - <I> the size of output string.
* @return - the destinatin string pointer.
*/
extern char *GSTR_copy( char *dst, const char *src, int dstSize );
/**
* Converts int to string.
* @param dst - <OF> the output string.
* @param value - <I> the int to be cloned.
* @return - the destinatin string pointer.
*/
extern char* GSTR_int_to_string( char **dst, int value );
/**
* Formats the int/string value as string.
* @param dst - <O> the destination string.
* @param digitNum - <I> the digit number of the value.
* @param value - <I> the value to be converted.
* @return - N/A.
*/
extern void GSTR_format_int_to_string( char *dst, int digitNum, int value );
extern void GSTR_format_string( const char *dst, int m, const char *fill_char, char **out );
/**
* Appends the strings( never null returned )
* @param s1 - <I> string 1
* @param s2 - <I> string 2
* @return - <OF> new string
*/
extern char* GSTR_string_append( const char *s1, const char *s2 );
/**
* Whether the string is float type
* @param str - <I> The string
*
* NOTE: it's only check whether each word is in "+-.0123456789", not care the float with "E" or the float rule,
* like "00-1.+01", it will return true.
* @return - return true if it is one.
*/
extern logical GSTR_is_float(const char *str);
/**
* Whether all char of the string are number
* @param str - <I> The string
*
* NOTE: it's only check whether each word is in "0123456789"
* @return - return true if it is one.
*/
extern logical GSTR_is_number(const char *str);
/**
* Is ascii char
* @param ch - <I> ascii char
* @return - return true if it is.
*/
extern logical GSTR_is_ascii(char ch);
/**
* Trims the string's prefix.
* @param str - <I> The string
* @param s - <I> The char
*
* @return - count.
*/
extern int GSTR_trim_l( char *str, char s );
extern int GSTR_trim_r( char *str, char s );
/**
* Remove the zero.
* For Example:
* floatValue="50.00" -> = "50"
* floatValue="50.0100" -> = "50.01"
* @return - count.
*/
extern void GSTR_trim_float( char *floatValue );
/**
* contains
* if contains return 0, else return 1
* @return - count.
*/
extern int contains(const char *parent, char target);
extern bool contains1(char **array, char *str);
extern bool contains2(char **array, int len, const char *str);
bool contains3(vector<string> array, const char *str);
string replace(string str, string s1, string s2);
string stringToUTF8(const std::string str);
string GbkToUtf8(const char *src_str);
string Utf8ToGbk(const char *src_str);
void createDir();
#ifdef __cplusplus
}
#endif
#endif //STRING_UTILS_H