It may be the compiler, but it just doesn't work.
The program it's suppose to return the string "a m".
#include <iostream>
#include <string>
int main(int argc, char *argv[])
{
std::string x = "hola mundo";
std::cout << fromto(x.c_str(),"l","u") << std::endl;
return 0;
}
const char* fromto(const char* str,const char* from,const char* to,bool include_from_and_to = true)
{
if(!MUO_char_from(str,from,include_from_and_to)){return "\0";}
int x = MUO_char_to(str,from,to,include_from_and_to);
if(x == 0){return "\0";}
if(include_from_and_to){x += strlen(to);}
char* res = new char[x];
int y = 0;
for(;y < x;y++){res[y] = str[y];}
res[y] = '\0';
return res;
}
bool MUO_char_from(const char* &str,const char* &from,bool &include_from_and_to)
{
int x;
int y = strlen(from);
while(*str != '\0')
{
x = 0;
while(str[x] == from[x])
{
x++;
if(y == x)
{
if(include_from_and_to){return true;}
else
{
x = 0;
while(x < y)
{
str++;
x++;
}
return true;
}
}
}
str++;
}
return false;
}
int MUO_char_to(const char* &str,const char* &from,const char* &to,bool &inlcude_from_and_to)
{
unsigned int x = 0;
if(inlcude_from_and_to){x = strlen(from);}
unsigned int y = x,z = 0;
while(str[y] != '\0')
{
while(str[x] == to[z])
{
if(to[x] == '\0'){return y;}
x++;
z++;
}
y++;
x = y;
z = 0;
}
return 0;
}
sorry for posting the hole thing, i'm not sure whts the problem.