Search code examples
cpointerspointer-arithmetic

pointer arithmetic in C for getting a string


I want to get the elements of an array of characters, but no success at all, the problem is that I only get the first and last element and nothing more, my code is:

void getcharacters(char *cad)
{
 int l;
 int *i;
 l=strlen(cad);
 for (i=&cad[0];i<&cad[l];i++){
     printf("%c\n",*cad);
 }
}

any help? Thanks


Solution

  • You are using the same character (*cad or cad[0]) for all printf's. What you need is to use the index to get the next char in each iteration. Also i needs to be a pointer to char:

    void getcharacters(char *cad)
    {
     int l;
     char *i;
     l=strlen(cad);
     for (i=&cad[0];i<&cad[l];i++){
         printf("%c\n", *i );
     }
    }