I’m studying for an exam and I need some help with strings
Assume the following declarations, and further assume that string.h is uncluded
char rocky[21], bw[21], boris[21];
int result;
a.) Write a scanf statement that would enable the string Beauregard to be read into rocky
my answer= scanf("%s", &rocky);
b.) Assuming that the text Beauregard is the only thing on th eline of standard input, write a statement to read in the text and store it in rocky using an alternative to scanf
my answer= gets (Beauregard);
strcpy(rocky);
c.) assuming that the text read in is Beauregard, what is the value of result after the following statement is executed?
result=strlen(rocky);
my answer= i have no clue..
d.) what does the following statment do?
strcpy(boris, rocky);
answer= makes a copy of the string..(dont know much more than that)
e.) what does the following statement do? What are the values of rocky and bw?
strncpy(bw,rocky,3);
my answer= not a clue
help is much appreciated, and an explanation would also help 🙂
Thanks!
a. Arrays and pointers are closely related in C. In particular, the name of an array decays to a pointer to the first element of the array, so your answer should be
b.
gets(Beauregard)doesn’t really make sense. The gets function reads a string from standard input (think, “keyboard”) and stores it in the character array pointed to by the argument you pass it. So you’re supposed to assume the user will type “Beauregard”, and you should read it into therockyarray withc. strlen returns the length of the string, not including the trailing
\0character, so in this case, 10.d. strcpy just copies the contents of the rocky array into the boris array, so they’d both contain “Beauregard”.
e. strncpy works like strcpy, but only copies up to n characters (where n is the last argument, so in this case, bw would contain “Bea” without a terminating null character.
Note that several of these statements are really bad ideas in any real program. There is never a reason to use gets, for example, as any use of gets opens up security flaws. You should always use fgets instead. The scanf function can be used safely if you specify the width, but you haven’t done so here. I mention these things just in case your teacher has covered them and you’ve forgotten.