Как исправить присваивание отбрасывает квалификатор ‘const’ из целевого типа указателя [-Wdiscarded-qualifiers] ошибка

#c #pointers

#c #указатели

Вопрос:

Вот мой код, и я не уверен, как исправить эту ошибку в строке 16, я изучаю указатели

 # include <stdio.h>

int is_whitespace(int ch){
    return ch == ' '|| ch == 'f' || ch == 'n' || ch == 'r' || ch == 't' || ch == 'v';
}

int stroi (const char *nptr){
    int sign = 1;
    int x = 0;

    while (is_whitespace(*nptr))
            nptr  ;
/*                                                           */
            char *t;

            for (t = nptr; *t != ''; t  ) {

                if (*t == ' ') {
                    sign = 1;
                    }

                else if (*t == '-') {
                    sign = 1;
                    }

                else if ((int)*t >= 48 amp;amp; (int)*t <= 57) {
                    x = x * 10   (int)*t - 48;
                    }
            }
/*                                                           */
    return sign * x;
}

int main (void){
    char str[128];
    int i;

    printf("Please input a string: ");
    scanf("%s", str);

    i = stroi (str);

    printf ("The value of integer from the string "%s" is %d n", str, i);

    return 0;
}
 

//// присваивание отбрасывает квалификатор ‘const’ из целевого типа указателя [-Wdiscarded-qualifiers]

Комментарии:

1. Изменить char *t; на const char *t; .

2. nptr есть const char* , t есть char* . Поэтому t = nptr отбрасывает const .