6. 4 points #include #include «string.h» #include int main(int argc, char wargvl
ID: 3918405 • Letter: 6
Question
6. 4 points #include #include «string.h» #include int main(int argc, char wargvl) ipv4 buffer[16], *str (0,0,0,0), int value [4] locality-offset, index# 0; ; if (argc- 3) locality offset-atoi(argv [2]); else f printf( return 0; IP-addr locauty-offset ", argv[0] ); "usage: %s strcpy(ipv4_ buffer,argv[1]); str ipv4_buffer: while (*str) if (isdigit(*str)) value [index] 10; value [index] += *str- '0'; else f index++ str++; ?e2; %d ",i, value [1] for (int i=0; i++) printf("%d : + locality-offset); return 0; $./prob6 127.0.0.1 5Explanation / Answer
Q6) Program:
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char ipv4_buffer[16], *str;
int value[4] ={0,0,0,0}, locality_offset, index = 0;
if (argc==3) // argc has been declared but not initialized, thus argc ! = 3
locality_offset=atoi(argv[2]);
else{ // else part executes and the program ends as return 0; is done here
printf("usage: %s IP_addr locality_offset", argv[0]); // Thus statement prints before the program exits
return 0;
}
strcpy(ipv4_buffer, argv[1]); // Program doesn't go at all, this part onwards
str=ipv4_buffer;
while(*str){
if(isdigit(*str)){
value[index] *= 10;
value[index] += *str - '0';
}
else{
index++;
}
str++;
}
for(int i=0;i<2;i++)
printf("%d: %d ",i,value[i] + locality_offset);
return 0;
}
Output:
Program executed without errors giving output:
usage: main IP_addr locality_offset
Explanation inline to the program above.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.