Just4Trionic - CAN and BDM FLASH programmer for Saab cars

Dependencies:   mbed

Committer:
Just4pLeisure
Date:
Wed May 19 12:39:18 2010 +0000
Revision:
0:e0b964252a05
Child:
1:d5452e398b76

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Just4pLeisure 0:e0b964252a05 1 /*******************************************************************************
Just4pLeisure 0:e0b964252a05 2
Just4pLeisure 0:e0b964252a05 3 Strings.cpp - By Sophie Dexter, April 2010
Just4pLeisure 0:e0b964252a05 4
Just4pLeisure 0:e0b964252a05 5 This C++ module provides functions for working with 'strings' of ascii 'char's
Just4pLeisure 0:e0b964252a05 6
Just4pLeisure 0:e0b964252a05 7 C++ should have functions like these, but it doesn't seem to so these are my
Just4pLeisure 0:e0b964252a05 8 own ones. They are very simple and do not check for any errors e.g. StrCpy
Just4pLeisure 0:e0b964252a05 9 does not check that s1 is big enough to store all of s2.
Just4pLeisure 0:e0b964252a05 10
Just4pLeisure 0:e0b964252a05 11 ********************************************************************************
Just4pLeisure 0:e0b964252a05 12
Just4pLeisure 0:e0b964252a05 13 WARNING: Use at your own risk, sadly this software comes with no guarantees.
Just4pLeisure 0:e0b964252a05 14 This software is provided 'free' and in good faith, but the author does not
Just4pLeisure 0:e0b964252a05 15 accept liability for any damage arising from its use.
Just4pLeisure 0:e0b964252a05 16
Just4pLeisure 0:e0b964252a05 17 *******************************************************************************/
Just4pLeisure 0:e0b964252a05 18 #include "strings.h"
Just4pLeisure 0:e0b964252a05 19
Just4pLeisure 0:e0b964252a05 20 // copies a string, s2, (array of chars) to another string, s1.
Just4pLeisure 0:e0b964252a05 21 char *StrCpy(char *s1, char *s2) {
Just4pLeisure 0:e0b964252a05 22 // while (*s1++ = *s2++);
Just4pLeisure 0:e0b964252a05 23 while (*s2)
Just4pLeisure 0:e0b964252a05 24 *s1++ = *s2++;
Just4pLeisure 0:e0b964252a05 25 return s1;
Just4pLeisure 0:e0b964252a05 26 }
Just4pLeisure 0:e0b964252a05 27
Just4pLeisure 0:e0b964252a05 28 // returns the number of chars in a string
Just4pLeisure 0:e0b964252a05 29 int StrLen(char *s) {
Just4pLeisure 0:e0b964252a05 30 int x = 0;
Just4pLeisure 0:e0b964252a05 31 while (*s++)
Just4pLeisure 0:e0b964252a05 32 x++;
Just4pLeisure 0:e0b964252a05 33 return (x);
Just4pLeisure 0:e0b964252a05 34 }
Just4pLeisure 0:e0b964252a05 35
Just4pLeisure 0:e0b964252a05 36 // checks s1 to see if it the same as s2
Just4pLeisure 0:e0b964252a05 37 // returns TRUE if there is a match
Just4pLeisure 0:e0b964252a05 38 // WARNING actually only checks that s1 starts with s2!
Just4pLeisure 0:e0b964252a05 39 bool StrCmp(char *s1, char *s2) {
Just4pLeisure 0:e0b964252a05 40 // while (*s2 != '\0') {
Just4pLeisure 0:e0b964252a05 41 while (*s2) {
Just4pLeisure 0:e0b964252a05 42 if (*s1++ != *s2++) {
Just4pLeisure 0:e0b964252a05 43 return FALSE;
Just4pLeisure 0:e0b964252a05 44 }
Just4pLeisure 0:e0b964252a05 45 }
Just4pLeisure 0:e0b964252a05 46 return TRUE;
Just4pLeisure 0:e0b964252a05 47 }
Just4pLeisure 0:e0b964252a05 48
Just4pLeisure 0:e0b964252a05 49 // Converts lower case ascii letters a-z to upper case
Just4pLeisure 0:e0b964252a05 50 // leaves other characters unchanged
Just4pLeisure 0:e0b964252a05 51 char ToUpper(char c) {
Just4pLeisure 0:e0b964252a05 52 if (c >= 'a' && c <= 'z')
Just4pLeisure 0:e0b964252a05 53 c -= 32;
Just4pLeisure 0:e0b964252a05 54 return c;
Just4pLeisure 0:e0b964252a05 55 }
Just4pLeisure 0:e0b964252a05 56
Just4pLeisure 0:e0b964252a05 57 // Converts upper case ascii letters A-Z to lower case
Just4pLeisure 0:e0b964252a05 58 // leaves other characters unchanged
Just4pLeisure 0:e0b964252a05 59 char ToLower(char c) {
Just4pLeisure 0:e0b964252a05 60 if (c >= 'A' && c <= 'Z')
Just4pLeisure 0:e0b964252a05 61 c += 32;
Just4pLeisure 0:e0b964252a05 62 return c;
Just4pLeisure 0:e0b964252a05 63 }
Just4pLeisure 0:e0b964252a05 64
Just4pLeisure 0:e0b964252a05 65 // Converts ASCII numbers 0-9 and letters a-f (and A-F) to hex values 0x00-0x0F
Just4pLeisure 0:e0b964252a05 66 // leaves other characters unchanged
Just4pLeisure 0:e0b964252a05 67 // ASCII '0' is worth 0x30 so subtract 0x30 if ascii character is a number
Just4pLeisure 0:e0b964252a05 68 // Lower case ASCII letter 'a' is worth 0x61, but we want this to be worth 0x0A
Just4pLeisure 0:e0b964252a05 69 // Subtract 0x57 (0x61 + 0x0A = 0x57) from lower case letters
Just4pLeisure 0:e0b964252a05 70 // Upper case ASCII letter 'A' is worth 0x41, but we want this to be worth 0x0A
Just4pLeisure 0:e0b964252a05 71 // Subtract 0x37 (0x41 + 0x0A = 0x37) from upper case letters
Just4pLeisure 0:e0b964252a05 72
Just4pLeisure 0:e0b964252a05 73 char *aToh(char *s) {
Just4pLeisure 0:e0b964252a05 74 while (*s) {
Just4pLeisure 0:e0b964252a05 75 if ((*s >= '0') && (*s <='9'))
Just4pLeisure 0:e0b964252a05 76 *s -= '0';
Just4pLeisure 0:e0b964252a05 77 else if ((*s >= 'a') && (*s <='f'))
Just4pLeisure 0:e0b964252a05 78 *s -= ('a' - 0x0A);
Just4pLeisure 0:e0b964252a05 79 else if ((*s >= 'A') && (*s <='F'))
Just4pLeisure 0:e0b964252a05 80 *s -= ('A' - 0x0A);
Just4pLeisure 0:e0b964252a05 81 s++;
Just4pLeisure 0:e0b964252a05 82 }
Just4pLeisure 0:e0b964252a05 83 return s;
Just4pLeisure 0:e0b964252a05 84 }