Save
Busy. Please wait.
Log in with Clever
or

show password
Forgot Password?

Don't have an account?  Sign up 
Sign up using Clever
or

Username is available taken
show password


Make sure to remember your password. If you forget it there is no way for StudyStack to send you a reset link. You would need to create a new account.
Your email address is only used to allow you to reset your password. See our Privacy Policy and Terms of Service.


Already a StudyStack user? Log In

Reset Password
Enter the associated with your account, and we'll email you a link to reset your password.
focusNode
Didn't know it?
click below
 
Knew it?
click below
Don't Know
Remaining cards (0)
Know
0:00
Embed Code - If you would like this activity on your web page, copy the script below and paste it into your web page.

  Normal Size     Small Size show me how

CYB2200 - L4

C Style Strings

QuestionAnswer
bounded string functions are safer alternatives to unbounded string functions
what makes bounded string functions A length parameter to designate the length (or bounds) of the destination buffer
can bounded string functions be misused and how May be misused in more subtle ways
strcpy() function char *strcpy(char *dst, char *src)
strcpy() purpose The strcpy() copies the string pointed to by src (including the terminating null character) into the array pointed to by dst and eases copying when it encounters an end of string character (a NUL byte)
what is important to remember about strcpy() It ceases copying when it encounters an end of string character (a NUL byte)
strncpy() function char *strncpy(char *dst, char *src, size_t n)
strncpy() purpose strncpy() copies the string located at src to the destination dst, until it encounters an end of string character (a NUL byte) or when n characters have been written to the destination buffer.
bounded string functions strncpy(), strncat()
what happens if missing NUL at end? A lot of string manipulating functions use NUL terminator to identify the end of a string - these won't work as intended
example of string functions using NUL terminator to identify the end of the string strncpy() copies the string located at src to the destination dst, until it encounters an end of string character (a NUL byte) or when n characters have been written to the destination buffer.
After calling strncpy(), you can add NUL terminator using something like strncpy(buf, str, n); //assume n is the correct size of buf if (n > 0) buf[n - 1]= '\0';
strcat() function char *strcat (char *dst, char *src)
strcat() purpose The strcat() functions are responsible for concatenating two strings together. The src string is appended to dst where The terminating character at the end of dst is replaced by the first character of src.
what is important to remember about strcat() The terminating character at the end of dst is replaced by the first character of src.
strncat() function char *strncat(char *dst, char *src, size_t n)
strncat() purpose strncat() concatenates two strings together. The string src points to is appended to the string dst points to. It copies at most n bytes. The size argument represents how many bytes remain in the buffer.
what is important to remember about strncat() The size argument represents how many bytes remain in the buffer.
what are two common mistakes when using strncat() • 1. Supplying the size of the entire buffer instead of the size remaining in the buffer. • 2. The size doesn’t account for the trailing NUL byte
strlen() returns the given byte string not including NUL terminator
some systems (BSD, Solaris exc) provide the following functions strlcpy(), strlcat()
strlcpy() function is a BSD specific extension to the libc string APIs
what does strlcpy() do it copies at most size-1 bytes to dst
strlcat() BSD specific extension to the libc string API
what does strlcat() do the size parameter for strlcat() is the total size of the destination buffer instead of the remaining space left in the buffer (aka strncat())
what does strlcat() accomplish guarantees NUL termination of the destination buffer
what does strlcpy() accomplish guarantees NUL byte termination of the destination buffer
Created by: user-1830624
Popular Computers sets

 

 



Voices

Use these flashcards to help memorize information. Look at the large card and try to recall what is on the other side. Then click the card to flip it. If you knew the answer, click the green Know box. Otherwise, click the red Don't know box.

When you've placed seven or more cards in the Don't know box, click "retry" to try those cards again.

If you've accidentally put the card in the wrong box, just click on the card to take it out of the box.

You can also use your keyboard to move the cards as follows:

If you are logged in to your account, this website will remember which cards you know and don't know so that they are in the same box the next time you log in.

When you need a break, try one of the other activities listed below the flashcards like Matching, Snowman, or Hungry Bug. Although it may feel like you're playing a game, your brain is still making more connections with the information to help you out.

To see how well you know the information, try the Quiz or Test activity.

Pass complete!
"Know" box contains:
Time elapsed:
Retries:
restart all cards