Is there a library to manipulate a string like in BASIC language. For example..
LEFT("test",2) ==> return "te"
RIGHT("test",2) ==> return "st"
MID("test",2,1) ==> return "e"
Sorry if this off the way to program in C. I from BASIC background try to learn C.
I found that the library given is quite limited. I know C is power but I wonder how
did people actually do to program with those small amount of library.
I figure they probably use those preset dll on window like User32 kernel32 ect...
But still difficult to find a function like LoadJPG("name.jpg").
I see here that internet very important. I have to dig into MSDN for a usefull function
and still cannot easily found FloadToString() function..
Is this really the scenario or its just me. Please advice me how to learn C in the
best way. I will try hard to learn C or C++ because I know its a real kicking language.
Hello magic.
Welcome.
You should start thinking in C. Try http://www.google.com/search?q=c+language+tutorial
Once you know how it works, you can play with Windows Programming:
http://www.winprog.org/tutorial/
There is not a basic style string handling library.
However BCX, the Basic to C translator is a great way to learn C and contains lots of examples. Write what you want to do in BCX and then run the translator and look at the C code generated.
I have adapted some BCX constructs for use in my C programs that handle lots of text.
Here are some examples:
/*
*
* FUNCTION: BCX_TmpStr
*
* PURPOSE: Provide temporary strings from a curcular storage array.
*
* PARAMS: size_t Bites - desired length of string
*
* RETURNS: LPSTR - pointer to the allocated temporary string
*
* History:
* March '07 - Borrowed from BCX
*
*/
LPSTR BCX_TmpStr (size_t Bites)
{
static int StrCnt;
static LPSTR StrFunc[2048];
StrCnt=(StrCnt + 1) & 2047;
if(StrFunc[StrCnt]) free (StrFunc[StrCnt]);
return StrFunc[StrCnt]=(char*)calloc(Bites+128,sizeof(char));
}
/*
*
* FUNCTION: Mid
*
* PURPOSE: Extract a substring from a given source string
* based on character start position in source string
* and an optional length.
*
* PARAMS: LPSTR lpSource - pointer to source string
* INT start - start position
* INT length - optional length of sub string
*
* RETURNS: LPSTR - extracted sub string
*
* History:
* March '07 - Borrowed from BCX
*
*/
LPSTR Mid (LPSTR, INT, INT=-1);
LPSTR Mid (LPSTR lpSource, INT start, INT length)
{
register int tmplen = strlen(lpSource);
LPSTR strtmp;
if(start>tmplen||start<1) return BCX_TmpStr(1);
if (length < 0) length = tmplen - start + 1;
strtmp = BCX_TmpStr(length);
return (LPSTR)memcpy(strtmp,&lpSource[start-1],length);
}
LPSTR Left (LPSTR mainStr, UINT length)
{
return Mid(mainStr,1,length);
}
LPSTR Right (LPSTR mainStr, UINT length)
{
return Mid(mainStr,strlen(mainStr)-length+1,-1);
}