Tuesday, August 01, 2006

string functions in C (4)

Convert a string to upper case:
void ToUpper(char * S)
{
while (*S!=0)
{
*S=(*S >= 'a' && *S <= 'z')?(*S-'a'+'A'):*S; S++; } }

Or with the following same method: (from VC source)
char * ToUpper2(char *string)
{
char *cp; /* traverses string for C locale conversion */
for ( cp = string ; *cp ; ++cp )
if ( ('a' <= *cp) && (*cp <= 'z') )
*cp -= 'a' - 'A'; // *cp += 'A' - 'a'; same thing
return(string);
}

Switch lower and upper: Upper -> lower and Lower -> Upper,
char * LowUpper(char *string)
{
char *cp;
for ( cp = string ; *cp ; ++cp )
if ( ('A' <= *cp) && (*cp <= 'Z') )
*cp -= 'A' - 'a';
else if ( ('a' <= *cp) && (*cp <= 'z') )
*cp -= 'a' - 'A';
return(string);
}

Find the integer part in the string and output the integer:
int strint2int(char *s)
{ int flag;
char *ss = s;
while(*ss)
{
if ( *ss >= '0' && *ss <= '9' )
flag = 1;
ss++;
}
if (flag == 1)
return (atoi(s));
else return 0;
}

No comments:

Post a Comment