Adrian Nowak
/
__M2__5b____copy
ll
Diff: string.cpp
- Revision:
- 0:a8e3f4b25a52
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/string.cpp Tue May 09 11:59:23 2017 +0000 @@ -0,0 +1,103 @@ +#include "string.h" +#include <stdio.h> +#include <string.h> + +#define NULL 0 + +void CopyString(char pcSource[],char pcDestination[]) { + + strcpy (pcDestination, pcSource); +} + +enum CompResult eCompareString(char pcStr1[],char pcStr2[]) { + + if(!strcmp(pcStr1, pcStr2)) + return EQUAL; + else + return DIFFERENT; +} + +void AppendString(char pcSourceStr[],char pcDestinationStr[]) { + + unsigned char ucLicznikZnaku; + + for(ucLicznikZnaku=0;pcDestinationStr[ucLicznikZnaku]!=NULL;ucLicznikZnaku++) {} + CopyString(pcSourceStr,pcDestinationStr+ucLicznikZnaku); +} + +void ReplaceCharactersInString(char pcString[],char cOldChar,char cNewChar){ + + unsigned char ucLicznikZnaku; + + for(ucLicznikZnaku=0;pcString[ucLicznikZnaku]!=NULL;ucLicznikZnaku++) { + if(cOldChar==pcString[ucLicznikZnaku]){ + pcString[ucLicznikZnaku]=cNewChar; + } + } +} + +///////////// + +void UIntToHexStr(unsigned int uiValue, char pcStr[]){ + + unsigned char ucNibbleCounter; + unsigned char ucCurrentNibble; + + pcStr[0]='0'; + pcStr[1]='x'; + pcStr[6]=NULL; + + for(ucNibbleCounter=0; ucNibbleCounter<4; ucNibbleCounter++){ + ucCurrentNibble=(uiValue >> (ucNibbleCounter*4))&0x0F; + if(ucCurrentNibble<10){ + pcStr[5-ucNibbleCounter] = '0'+ucCurrentNibble; + } + else{ + pcStr[5-ucNibbleCounter] = 'A'+(ucCurrentNibble-10); + } + } +} + + +enum Result {OK, ERROR}; + +enum Result eHexStringToUInt(char pcStr[], unsigned int *puiValue){ + + unsigned char ucCharacterCounter; + unsigned char ucCurrentCharacter; + + *puiValue=0; + + if((pcStr[0]!='0') || (pcStr[1]!='x') || (pcStr[2]==NULL)){ + return ERROR; + } + for(ucCharacterCounter=2; ucCharacterCounter<7; ucCharacterCounter++){ + ucCurrentCharacter = pcStr[ucCharacterCounter]; + if(ucCurrentCharacter==NULL){ + return OK; + } + else if(ucCharacterCounter==6){ + return ERROR; + } + *puiValue = *puiValue << 4; + if((ucCurrentCharacter <= '9') && (ucCurrentCharacter >= '0')){ + ucCurrentCharacter = ucCurrentCharacter-'0'; + } + else if((ucCurrentCharacter <= 'F') && (ucCurrentCharacter >= 'A')){ + ucCurrentCharacter = ucCurrentCharacter-'A'+10; + } + else{ + return ERROR; + } + *puiValue = (*puiValue) | ucCurrentCharacter; + } + return ERROR; +} + +void AppendUIntToString(unsigned int uiValue, char pcDestinationStr[]){ + + unsigned char ucIndeksKonca; + + for(ucIndeksKonca=0; pcDestinationStr[ucIndeksKonca]!=NULL; ucIndeksKonca++){} + UIntToHexStr(uiValue, &pcDestinationStr[ucIndeksKonca]); +}