Blog literacki, portal erotyczny - seks i humor nie z tej ziemi
Lesson 9: Strings
This lesson is one on strings. Strings are really arrays, but there are some different
functions that are used for strings, like adding to strings, finding the length of strings, and
also of checking to see if strings match. Strings are basically sentences, or words. Like,
"This is a string".
Strings are basically character arrays. For example, to declare a string of 50 letters, you
would want to say:
char string[50];
This would declare a string with a length of 50 characters. Don't forget that arrays begin at
0, not 1 for the index-number. Also, a string ends with a null character, literally a '/0'
character. But, just remember that there will be an extra character on the end on a string. It
is like a period at the end of a sentence, it is not counted as a letter, but it still takes up
a space.
What are strings useful for? Well, for one thing, you might want to get a person's name. If you
wanted to, you would need a string, because a name can't fit in one variable! It is, however, a
collection of characters, and so fits nicely into a character array.
Now, what if you want to input a string? Well, if you try to use cin>> then it won't work! It
terminates at the first space. However, you can use the function gets(char *s);
.
Gets is basically a function that reads in a string and stops reading at the first new-line, for
example, when a user hits enter. Gets is in stdio.h. All you do, is put the name of the array and it will work out,
because the pointer char *s is basically one way you tell a function that you will be passing an
array, although it is a pointer, it is still the string you give. Essentially, char *s points to
a string, and you can access this string just like an array.
I will touch upon this relationship as described above in another lesson that will be a more
advanced lesson on pointers and arrays.
Anyway, to get a string from a user you want to use gets. An example program of this would be:
#include
#include
void main()
{
char astring[50]; //This declares a character array that can be used as a string
cout<<"Please enter a string"; //You should know this one!
gets(astring); //The user will input a string(with spaces)
cout<<"You input: "<
}
Ok, thats pretty simple. But, what if you want to use some of the nifty functions from string.h?
Well, these include the following functions:
int strcmp(const char *s1, const char *s2);
strcmp will accept two strings. It will return an integer. This integer will either be:
Negative if s1 is less than s2.
Zero if s1 and s2 are equal.
Positive if s1 is greater than s2.
Strcmp is case sensitive.
int strcmpi(const char *s1, const char *s2);
strcmp will accept two strings. It will return an integer. This integer will either be:
Negative if s1 is less than s2.
Zero if the s1 and s2 are equal.
Positive if s1 is greater than s2.
Strcmpi is not case sensitive, if the words are capitalized it doesn't matter.
char *strcat(char *desc, char *src);
strcat is short for string cacatenate, which means to add to the end, or append. It does just this,
the first string is what the second string is stuck on the end of. It basically returns the
cacatenated string. The first string will also have the entire string added to it.
char *strupr(char *s);
strupr converts a string to uppercase. It also returns a string, which will all be in uppercase.
The input string, if it is an array, will also all be uppercase.
char *strlwr(char *s);
strlwr converts a string to lowercase. It also returns a string, which will all be in uppercase.
The input string, if it is an array, will also all be uppercase.
size_t strlen(const char *s);
strlen will return the length of a string, minus the termating character(/0). The size_t is
nothing to worry about. Just treat it as an integer.
Some of the stuff in the strings may be confusing. The const char *s stuff, for example. But,
just remember that basically all of that will be a string! It doesn't matter what the code is
right now, just what the functions do.
Now, a small program using many of the string functions!
#include
#include
#include
void main()
{
char name[50]; //Declare variables
char lastname[50]; //This could have been declared on the last line...
cout<<"Please enter your name: "; //Tell the user what to do
gets(name); //Use gets to input strings with spaces or just to get strings after the user presses enter
if(!strcmpi("Alexander", name)) //The ! means not, strcmpi returns 0 for equal strings
{ //strcmpi is not case sensitive
cout<<"That's my name too."<
else //else is used to keep it from always outputting cout<<"That's not my name."
{
cout<<"That's not my name."<
cout<<"What is your name in uppercase..."<
cout<
cout<
gets(lastname); //lastname is also a string
strcat(name, " "); //We want to space the two names apart
strcat(name, lastname); //Now we put them together,we a space in the middle
cout<<"Your full name is "<
Note: My homepage is http://www.cprogramming.com. My email is lallain@concentric.net. Please
email me with comments and or suggestions. If you want to use this on your own site please
email me and add a link to http://www.cprogramming.com. Thanks :)