Free C tutorials >> String Handling using Pointers in C >> C language Courses >> Java Courses
The concept of pointers in C in string handling described here using practical examples and with source code and compilation screen shots. Also I have discussed the common errors in pointers to handle strings.
Here a is a character variable and a character ‘C’ is assigned to a. A pointer variable ptr holds the address of a variable (&a).
In the next program I have assigned a whole string to another pointer variable s. So keep in mind that a pointer variable to a character can point to a single character as well as can point to an array of characters i.e a string. In the second case it points to the base address of the string (character array).
The following program describes this very clearly and after the program I have shown the picture of the compilation and output so you can see how it looks after compilation I have used the compiler Dev C++ to run & compile the program.
#include int main() { char *ptr, a; a = 'C'; ptr = &a; printf("\r\n%c %c", a, *ptr); }

Assign a string to a pointer variable (char *ptr)
Description : Here ptr is a pointer variable which points to a character, and cannot point to an integer (int) or float normally. Only with type casting it can be done, but that is another story.
#include int main() { char *ptr, a, *s = "Hello World"; a = 'C'; ptr = &a; printf("\r\n%c %c %s", a, *ptr, s); }

Here I have described few areas using pointers in C in this program given below and the compilation screen shot shows the error in DEV C++ compiler in the following picture.
Common errors in pointers – when re-assign a string to previously defined pointer
#include int main() { char *p = "Hello World"; printf("%s", p); *p = "Bikram Chouhdhury"; printf("%s", p); }

I have taken a pointer variable (p), which points to a character i.e char *p now pointing to a string “Hello World”. A string is basically a character array with the \0 at the end of the array. The character pointer p points to starting location of this character array / string “Hello World” placed in the memory locations, p only points to the starting location of this string i.e points to character ‘H’.
When you printing the string you are mentioning %s inside the printf() function and passing the starting address p as the parameter of printf statement to print the whole string.
But when I am re-assigning another string to the same pointer variable by the statement *p = “Bikram Choudhury” , it is not allowed.
So this pointer re-assignment is not allowed in C , just check the image given above. I am using Dev C++ compiler and it shows you cannot re-assign a different string to the same pointer variable, which has been already assigned a character array or string, this is forbidden in C.
————————————————————————————-
#include int main() { char *p = "Hello World", *ptr; ptr=p; printf("\r\n%s", p); printf("\r\n%s", ptr); }
In the above program I have assigned a string, that is a character array “Hello World” to a pointer variable p. I have taken another pointer variable *ptr
Later I have assigned pointer p to the pointer variable ptr, then I have printed the string using both pointer variables p & ptr using the printf() statement, so you will see the output Hello World in both cases in the following picture in which I have shown the output.

————————————————————————————-
#include #define ARRSIZE 100 int main() { char *oneDimensionCharArray = "Hello World"; printf("%s\r\n",oneDimensionCharArray); puts(oneDimensionCharArray); }
In the above program I have taken character pointer *oneDimensionCharArray that actually points to the string “Hello World”, that is the base address of string, points to ‘H’, the starting address of the array of characters. Then I have printed using the printf() and puts() function.
C tutor in Kolkata, C private tutor, Online C language tutor