String
In C programming, a string is a sequence of one or more than
any characters terminated with a null character. In C language you can only
save string in one dimensional character array , no separate data type for
string like java or c#.
Declare a string
char str = "GIRFA";
G
|
I
|
R
|
F
|
A
|
\0
|
Compiler will create an array of 6 element one extra cell
for null character which is used to detect end of string.
Input/Output
char str[10];
printf("Enter
string>>");
scanf("%s", str);
for (i = 1; i<str[i] != '\0'; i++)
printf("%c", str[i]);
This example shows you input a string without space and
process each character.
char str[10];
printf("Enter
string>>");
gets(str);
puts(str);
This example shows how to input space and print using
library function.
C language compiler has reach variety of string handling
functions string.h library file. Some popular function examples are given
below.
1 strcpy
Copy a string into other
Declaration:
char *strcpy(char *dest, const char *src);
char far * _fstrcpy(char far *dest, const char far *src);
Remarks:
Copies
string src to dest, stopping after the terminating null character has
been
moved.
int main(void)
{
char string[10];
char *str1 = "abcdefghi";
strcpy(string, str1);
printf("%s\n", string);
return 0;
}
2. Strlen
Calculates
length of a string
Declaration:
size_t strlen(const char *s);
size_t far _fstrlen(const char far
*s);
Remarks:
strlen
calculates the length of s.
Return Value:
Returns
the number of characters in s, not counting the terminating null
character.
int main(void)
{
char *string = "Borland
International";
printf("%d\n", strlen(string));
return 0;
}
3. strcat
Appends
one string to another
Declaration:
char *strcat(char *dest, const char *src);
char far * far _fstrcat(char far *dest, const char far *src);
Remarks:
strcat
appends a copy of src to the end of dest. The length of the resulting
string
is strlen(dest) + strlen(src).
int main(void)
{
char destination[25];
char *blank = " ", *c = "C++", *turbo = "Turbo";
strcpy(destination, turbo);
strcat(destination, blank);
strcat(destination, c);
printf("%s\n", destination);
return 0;
}
4.strcmp
strcmp
compare two strings
Declaration:
int strcmp(const char *s1, const char*s2);
Remarks:
strcmp performs an unsigned
comparison of s1 to s2. _fstrcmp is the far
version.
Return Value:
These
routines return an int value that is
<
0 if s1 < s2
== 0 if s1 ==
s2
>
0 if s1 > s2
int main(void)
{
char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc";
int ptr;
ptr = strcmp(buf2, buf1);
if (ptr > 0)
printf("buffer
2 is greater than buffer 1\n");
else
printf("buffer
2 is less than buffer 1\n");
ptr = strcmp(buf2, buf3);
if (ptr > 0)
printf("buffer
2 is greater than buffer 3\n");
else
printf("buffer
2 is less than buffer 3\n");
return 0;
}
5. strrev
Reverses
all characters in s (except for the terminating null)
Declaration:
char *strrev(char *s);
char far * far _fstrrev(char far *s);
Remarks:
strrev
and _fstrrev changes all characters in a string to reverse order,
except
the terminating null character.
For
example, it would change
string\0
to
gnirts\0.)
Return Value:
strrev
returns a pointer to the reversed string.
int main(void)
{
char *string = "Borland
International";
printf("string
prior to strlwr: %s\n", string);
strlwr(string);
printf("string
after strlwr: %s\n", string);
return 0;
}