значения превращаются в пустые строки - PullRequest
0 голосов
/ 12 октября 2019

Когда я визуализирую свой код с помощью Python Tutor, значения массива становятся пустыми строками, это происходит, когда преобразуется условие if, и я не понимаю, почему это происходит. Может кто-нибудь объяснить, почему это происходит, и предоставить исправление для этого?

  #include <stdio.h>

int countWords(char *src, char toFind)
{
    int numWords;
    int i;
    int d;

    numWords = 0;
    i = 0;
    d = 0;

    while (*src)
    {

      if (*src =! (toFind)) //it happens here*?*
        numwords++;

      src++;
    }  

}

int main()
{
    char arr[] = "abc,ffg,ijk";
    char c = ',';
    int res = 0;
    char *ptr;

    ptr = arr;

    res = countWords(ptr,c);

    printf("%d", res);
    return 0;
}

Ответы [ 2 ]

1 голос
/ 12 октября 2019

Вы сделали опечатку, если вы хотите сравнение, вы должны были использовать != вместо =!, который является оператором с двумя операторами и говорит компилятору вычислить переменную и присвоить обратный результат *src.

Кроме того, вы, возможно, использовали неправильный оператор, предполагая, что вам нужно количество слов, а не количество символов. Использование == исправит это.

0 голосов
/ 12 октября 2019

Вы забыли добавить return в конце своей функции countWords

return (numwords);

, как сказал SaltyPleb, я полагаю, что ваша функция возвращает количество слов, которые нужно найти, вы должны изменить!= по ==.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...