Luca Jel
/
mbed5a_testy
sdsd
Fork of mbed5a_testy by
Diff: string.cpp
- Revision:
- 1:b8d65b5745d1
- Parent:
- 0:e69a0b7f4b41
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/string.cpp Fri May 05 20:01:41 2017 +0000 @@ -0,0 +1,99 @@ +#include "string.h" + +void CopyString(char pcSource[], char pcDestination[]){ + + unsigned char ucCharacterCounter; + + for (ucCharacterCounter=0;(pcSource[ucCharacterCounter]!=NULL);ucCharacterCounter++){ + pcDestination[ucCharacterCounter]=pcSource[ucCharacterCounter]; + } + pcDestination[ucCharacterCounter]=pcSource[ucCharacterCounter]; +} + +enum CompResult eCompareString(char pcStr1[], char pcStr2[]){ + + unsigned char ucCharacterCounter; + + for(ucCharacterCounter=0;(pcStr1[ucCharacterCounter]!=NULL)&&(pcStr2[ucCharacterCounter]!=NULL);ucCharacterCounter++){ + if(pcStr1[ucCharacterCounter]!=pcStr2[ucCharacterCounter]){ + return NOTEQUAL; + } + } + if(pcStr1[ucCharacterCounter]!=pcStr2[ucCharacterCounter]){ + return NOTEQUAL; + } + return EQUAL; +} + +void AppendString (char pcSourceStr[], char pcDestinationStr[]){ + + unsigned char ucCharacterCounter; + + for (ucCharacterCounter=0;pcDestinationStr[ucCharacterCounter]!=NULL;ucCharacterCounter++){} + CopyString(pcSourceStr,pcDestinationStr+ucCharacterCounter); +} + +void ReplaceCharactersInString(char pcString[], char cOldChar,char cNewChar){ + + unsigned char ucCharacterCounter; + + for (ucCharacterCounter=0;pcString[ucCharacterCounter]!=NULL;ucCharacterCounter ++){ + if(pcString[ucCharacterCounter]==cOldChar){ + pcString[ucCharacterCounter]=cNewChar; + } + } +} + +void UIntToHexStr (unsigned int uiValue, char pcStr[]){ + + unsigned char ucBierzacaTetrada; + unsigned char ucLicznikTetrad; + + pcStr[0] = '0'; + pcStr[1] = 'x'; + pcStr[6] = NULL; + + for(ucLicznikTetrad = 0; ucLicznikTetrad < 4; ucLicznikTetrad++){ + ucBierzacaTetrada = (uiValue >> (ucLicznikTetrad*4)) & 0xF; + if(ucBierzacaTetrada < 10){ + pcStr[5 - ucLicznikTetrad] = '0' + ucBierzacaTetrada; + } + else{ + pcStr[5 - ucLicznikTetrad] = 'A' + ucBierzacaTetrada - 10; + } + } +} + +enum Result eHexStringToUInt(char pcStr[],unsigned int *puiValue){ + + char cZnakBiezacy; + unsigned char ucLicznikZnaku; + *puiValue=0; + + if((pcStr[0] != '0')||(pcStr[1] != 'x')||(pcStr[2] == NULL)){ + return (ERROR); + } + for(ucLicznikZnaku=2; pcStr[ucLicznikZnaku]!=NULL; ucLicznikZnaku++){ + cZnakBiezacy = pcStr[ucLicznikZnaku]; + if (ucLicznikZnaku>=6){ + return (ERROR); + } + *puiValue= *puiValue<<4; + if((cZnakBiezacy>='0')&&(cZnakBiezacy<='9')){ + *puiValue= *puiValue + (cZnakBiezacy-'0'); + }else if((cZnakBiezacy>='A')&&(cZnakBiezacy<='F')){ + *puiValue= *puiValue + (cZnakBiezacy-'A'+10); + }else{ + return (ERROR); + } + } + return (OK); +} + +void AppendUIntToString (unsigned int uiValue, char pcDestinationStr[]){ + + unsigned char ucLicznikZnakow; + + for (ucLicznikZnakow=0; pcDestinationStr[ucLicznikZnakow]!=NULL; ucLicznikZnakow++){} + UIntToHexStr(uiValue, pcDestinationStr+ucLicznikZnakow); +}