use Advanced C++ techniques, containers and features to refactor the C/C++ algorithm. The purpose is to replace appropriate declarations and code segments with Advanced C++ declarations and code. * Replace all arrays with appropriate STL containers. * Use STL algorithms to REPLACE existing logic where appropriate. * Use smart and move pointers where pointers are needed. * Use lambda expressions where appropriate. * Use C++ style casting when needed. * Look for opportunities where tuples could be used. * The code listing is in C and C++. If there are logic or syntax problems, please fix. #define BIND(A,L,H) ((L)<(A)?(A)<(H)?(A):(H):(L)) char dih[50],dah[50],medium[30],word[30],*dd[2] = {dih,dah}; const char *ascii = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,?'!/()&:;=+-_\"$@", *itu[] = {"13","3111","3131","311","1","1131","331","1111","11","1333","313","1311","33","31","333","1331","3313","131","111","3","113","1113","133","3113","3133","3311","33333","13333","11333","11133","11113","11111","31111","33111","33311","33331","131313","331133","113311","133331","313133","31131","31331","313313","13111","333111","313131","31113","13131","311113","113313","131131","1113113","133131" }; void algorithm1(char* s,const char* m) { for (; *m; ++m) strcat(s,dd['3'==*m]); strcat(s,medium); } char* algorithm2(const char*i,char*o) { const char* pc; sprintf(o,"beep"); for (; *i; ++i) if (NULL == (pc = strchr(ascii,toupper(*i)))) strcat(o,word); else algorithm1(o,itu[pc-ascii]); strcat(o,word); return o; } /* BIND(-1,0,9) is 0 BIND( 7,0,9) is 7 BIND(77,0,9) is 9 */
use Advanced C++ techniques, containers and features to refactor the C/C++
replace appropriate declarations and code segments with Advanced C++ declarations and code.
* Replace all arrays with appropriate STL containers.
* Use STL algorithms to REPLACE existing logic where appropriate.
* Use smart and move pointers where pointers are needed.
* Use lambda expressions where appropriate.
* Use C++ style casting when needed.
* Look for opportunities where tuples could be used.
* The code listing is in C and C++.
If there are logic or syntax problems, please fix.
#define BIND(A,L,H) ((L)<(A)?(A)<(H)?(A):(H):(L))
char
dih[50],dah[50],medium[30],word[30],*dd[2] = {dih,dah};
const char
*ascii = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,?'!/()&:;=+-_\"$@",
*itu[] = {"13","3111","3131","311","1","1131","331","1111","11","1333","313","1311","33","31","333","1331","3313","131","111","3","113","1113","133","3113","3133","3311","33333","13333","11333","11133","11113","11111","31111","33111","33311","33331","131313","331133","113311","133331","313133","31131","31331","313313","13111","333111","313131","31113","13131","311113","113313","131131","1113113","133131"
};
void algorithm1(char* s,const char* m)
{
for (; *m; ++m)
strcat(s,dd['3'==*m]);
strcat(s,medium);
}
char* algorithm2(const char*i,char*o)
{
const char* pc;
sprintf(o,"beep");
for (; *i; ++i)
if (NULL == (pc = strchr(ascii,toupper(*i))))
strcat(o,word);
else
algorithm1(o,itu[pc-ascii]);
strcat(o,word);
return o;
}
/*
BIND(-1,0,9) is 0
BIND( 7,0,9) is 7
BIND(77,0,9) is 9
*/

Trending now
This is a popular solution!
Step by step
Solved in 4 steps









