For Example:
Input: a2b12
Output: aabbbbbbbbbbbb
Input: b4c7d11e1
Output: bbbbcccccccddddddddddde
The number ranges from 1 to 99.
Implementation:
Input: a2b12
Output: aabbbbbbbbbbbb
Input: b4c7d11e1
Output: bbbbcccccccddddddddddde
The number ranges from 1 to 99.
Implementation:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
/* Pointer to the array of characters */
char *s;
char c;
int i,j,n,flag=0;
/* Allocate memory block of 256 characters and return the starting
address of the block to character pointer 'c' */
s=(char*)malloc(sizeof(char)*256);
/* Get the input string from the user */
scanf("%s",s);
i=0;
/* Until we reach the end of the string (null character ('\0')) */
while(*(s+i))
{
/* Set the flag value as zero for every character */
flag=0;
/* store every alphabet we encounter while we are traversing the string */
c=*(s+i);
/* Store the digit or number next to the alphabet */
n=*(s+i+1)-'0';
/* Check if the number has two digits,
if so, consider two digit number */
if(!(*(s+i+2)>='a' && *(s+i+2)<='z'))
{
/* move the first digit to ten's place to take up
new number in unit's place */
n=n*10;
/* convert the character to number and add it to unit place */
n+=(*(s+i+2)-'0');
/* Mark that the number is two-digit number */
flag=1;
i=i+3;
}
/* If the number is single-digit */
if(flag==0)
i=i+2;
/* Print the characters for 'n' number of times */
for(j=0;j<n;j++)
printf("%c",c);
}
return 0;
}
Input:
a2b12
Output:
aabbbbbbbbbbbb