My code gets a string of characters. For example \"aaabbffffdd\" A function inserts to a new string the letters and the amount of times they appear. So the output for this specifi
Try this code, it uses snprintf
to convert integer to string.
NOTE: You may need to increase the size from
2
, if count exceeds a character size.
#include
#include
#include
#define LONG 80
#define SHORT 20
void longtext(char longtxt[LONG], char shorttxt[SHORT])
{
int i, j=0, count=0, tmp;
char letter;
for (i = 0; i <= strlen(longtxt); ++i)
{
if (i == 0)
{
letter = longtxt[i];
++count;
}
else if (letter == longtxt[i])
++count;
else
{
shorttxt[j] = letter;
snprintf(&shorttxt[j + 1],2,"%d",count);
j += 2;
count = 1;
letter = longtxt[i];
}
}
}
int main()
{
char longtxt[LONG] = "aaabbffffdd",shorttxt[SHORT];
longtext(longtxt,shorttxt);
printf("%s", shorttxt);
}