There's so much however that sometimes its just simpler to implement your own method instead of finding the appropriate function to use.
What if you wanted to find the size of a char-array string including its NULL-byte.
Well you can easily and elegantly do this:
int strSize(const char* str) {
int len = 0;
while(str[len++]);
return len;
}
Another easy thing to implement is a toLower() function which converts uppercase letters to lowercase:
void strToLower(char* str) {
for( ; *str; str++) {
char& c = *str;
if (c >= 'A' && c <= 'Z') c = c - 'A' + 'a';
}
}
A matching toUpper() function is obviously just as easy ;p
Last here's a fun function I made that converts a 'u32' (unsigned 32-bit integer), to a hex string:
string toHexString(u32 value) {
char str9[9];
u32 pos = 0;
for (int i = 0; i < 8; i++) {
char dig = (value>>((7-i)*4))&0xf;
if (!dig && !pos) continue;
if ((dig) < 0xa) str9[pos] = '0' + dig;
else str9[pos] = 'a' +(dig-0xa);
pos++;
}
if (!pos) { str9[0] = '0'; pos=1; }
str9[pos] = '\0';
return string(str9);
}
That one is definitely more complex than the others, but it was fun to code.
All hex digits are 4-bits, and a u32 value only needs a char array of at-most size 9 (8 digits + 1 null byte).
Anyways, in real coding projects its probably best to use already defined functions that perform the string operation you want; but implementing your own can sometimes be fun, and possibly impress your professors on homework assignments.
No comments:
Post a Comment