Answered step by step
Verified Expert Solution
Question
1 Approved Answer
#include #include /* * The isnumber() function examines the character given as its first * argument and returns true if and only if the character
#include | |
#include | |
/* | |
* The isnumber() function examines the character given as its first | |
* argument and returns true if and only if the character represents | |
* an number. This helper function should be relatively short. | |
* | |
* Returns true if the given character represents an number, false | |
* otherwise. | |
*/ | |
bool isnumber(char c); | |
/* | |
* The decode() function takes a run-length encoded string as its | |
* argument, parses every integer n preceding every character in | |
* the string, and prints each character n times. For example, if | |
* the string passed to decode() is "1a3b", decode() will print | |
* "abbb". It returns an integer that represents the summed value | |
* of the amount of characters printed; in this example, decode() | |
* would return the integer 4. | |
* | |
* This function must also handle malformed run-length encoded strings. | |
* A malformed string is any string which does not adhere to the RLE | |
* implementation described in the handout. If a malformed string is | |
* encountered, it should cease printing the decoded string, print an | |
* error message, and return -1. | |
* | |
* Returns the integer value of the total amount of characters printed, | |
* or -1 if the run-length encoded string is malformed. | |
*/ | |
int decode(char *str); | |
/* | |
* The main function is where C programs begin. | |
* | |
* This function parses its arguments and returns the value they | |
* represent. In this assignment, the only valid argument is a | |
* run-length encoded string. Any extra arguments in excess of | |
* this single valid argument make the invocation of your program | |
* invalid. | |
* | |
* Remember that the argument in argv[0] is the name of the program, so | |
* a program passed exactly one argument on the command line will | |
* receive _two_ arguments: its name in argv[0] and the provided | |
* argument in argv[1]. | |
* | |
* Arguments: | |
* argc - The number of arguments received | |
* argv - The arguments received as an array of C strings | |
* | |
* Returns 0 if the argument is well-formed and the string could | |
* be decoded, non-zero otherwise. | |
*/ | |
int main(int argc, char *argv[]) { | |
/* Your main program logic should go here, with helper logic in the | |
* functions isnumber() and decode(), which you can place below | |
* the closing brace of main() */ | |
return 0; | |
} | |
/* You should implement isnumber() and decode() here */ |
Note that there is a C library function that could perform the role of isnumber() called isdigit(), and several C library functions that can parse the integers in the RLE string into C integers, including atoi() and strtol(). but you can not use that on it . !!!!!!!!!
input could be like 431a34b4c or just 2a3b2c those are valid but 0a2b no!!!!
using c programming language to do this run length decoding ....
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started