0
How to extract a string
how can i extract a string? for instance, extract h2pw3t4n into hhpwwwttttn? for any example like this, how can i do this? pls help me, its so important.
10 Réponses
+ 7
Let's say you have a string "h2pw3t4n".
string x = "h2pw3t4n";
int z = x.length();
char character[z] = x.c_str();
string str[z];
for (int i = 0; i < z; i++)
{
string temp (character[i]);
str[i] = temp;
i++;
}
for (int j = 0; j < z; j++)
{
if (str[j] == "2")
{
str[j] = "h";
}
if (str[j] == "3")
{
str[j] = "ww";
}
if (str[j] == "4")
{
str[j] = "ttt";
}
}
for (int k = 0; k < z; k++)
{
cout << str[k];
}
+ 6
You don't need to determine which is letter and which is numeric value since my code stores everything into string arrays and evaluate the strings using if... else statements to see if they require conversion/extraction or not.
If you want to convert/extract numeric values to string, let the if... else handle the work.
The downside is that a lot of if... else statements are needed, and if you want your conversion/extraction to be based on the surrounding letters, it may require a tweak on the code.
+ 6
You will need to list out your preferred conversion/extraction condition, in order for me to write the complete version of the code.
e.g.
1 to a
2 to bb
etc.
+ 1
read each character of the source string. if it is a letter, add to the (separate) destination string. if it is a number repeat adding the last letter to the destination string as many times as the number indicates.
+ 1
this is a good way
but how can i tell the compiler to determine which is letter and which is nember in a string?
+ 1
you know a character is a digit if its ASCII value is between that of '0' and '9' ant take advantage of automatic casting between char and int.
char c;
// ... initialise c here
if ( c >= '0' && c <= '9'){
// c is a digit
int val = c - '0';
}
+ 1
tnx my friend, it worked.
but i still cant write the right code to extract my string
i tried but im terrible in coding
if you write me the code of extracting a string
that would be graet
because i really need it.
+ 1
tnx, but i need a code to work for all strings like that
can you write me the code?
0
i published some example in the code section. search for 'expand string v1.0'
0
use this code. store the string to extract in the str variable. extracted string is generated in the exstr variable. works up to 9 character repetitions.
str = 'hp3w3tn5'
#expected = 'hpppwwwtnnnnn'
exstr = ''
for c in range(len(str)):
if str[c].isdigit():
exstr += str[c-1]*(int(str[c])-1)
else:
exstr += str[c]
print('extracted :', exstr)