Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Why The debuger neglect the while loops?

This is a program that delete spaces in the beginning and the end of a string c, can you tell me please where is the error in it ?
I already tried running it in the debuger. It seems that the while loops aren’t executed, kind of neglecting.

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
void main()
{
    char c[1000],d[1000];
    gets(c);
    int i=0,j=strlen(c)-1;
    while (c[i]==" ")
    {
        i++;
    }
    while (c[j]==" ")
    {
        j--;
    }
    int k,l=0;
    for (k=i;k<=j;k++)
    {
        d[l]=c[k];
        l++;
    }
    printf(d);
}

>Solution :

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

You should use single quotes to get a space character in C. If you use double quotes, you get a pointer to a string containing a space character and a null terminator, which is different.

So change " " to ' '.

Your compiler should have warned you about this, since you are comparing a char to a const char *. Indeed, when I compile your code in gcc with the default options, it says:

test.c: In function 'main':
test.c:10:16: warning: comparison between pointer and integer
   10 |     while (c[i]==" ")
      |                ^~
test.c:14:16: warning: comparison between pointer and integer
   14 |     while (c[j]==" ")
      |                ^~

Your programming journey will be much easier if you pay attention to compiler warnings and fix them. You can also pass options like -Wall to your compiler to make it give you more warnings.

Also you need to add a null terminator to your d string. So add this line after the last loop:

d[l] = 0;
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading