Возвращаемое значение не возвращается

#c

#c

Вопрос:

Я написал функцию word_pattern, как показано ниже.

Я не получил возвращаемое значение, что не так с кодом?

Ниже приведено обучение codewars.(https://www.codewars.com/kata/5f3142b3a28d9b002ef58f5e/train/c )

 #include <stdlib.h>
#include <string.h> //strlen
#include <ctype.h> //islower

char *word_pattern(const char *word) {
  int i, j;
  int size = strlen(word) ;
  char *ans = (char*)malloc(sizeof(char) * (size * 2 ));

  char *base = ans;

  if (ans == NULL)
  {
    return NULL;
  }

  for (i = 0; i < size; i  )
  {
    if (i == 0)
    {
      *ans   = (char)i;
      *ans   = '.';
      /*break;*/ continue;
    }

    for (j = 0; j < i; j  )
    {
      if ( islower(word[i]) == islower(word[j]) )
      {
        *ans   = (char)j;
        *ans   = '.';
        break;
      }
    }
    
    if(j == i)
    {
      *ans   = (char)i;
      *ans   = '.';
    }
  }

  *--ans = '';
  return base;
}
  

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

1. Что такое size ?

2. break; Вход if (i == 0) завершает внешний for цикл. Вы имели в виду использовать continue вместо этого?

3. Вы ожидаете, что возвращаемое значение будет строкой, заканчивающейся 0? Если это так, (char)i когда i равно 0, это ' то, что является терминатором строки. Таким образом, ваше возвращаемое значение будет выглядеть как пустая строка

4. @Merrifield вы отмечаете людей с помощью @ , и они будут автоматически уведомлены. >> ничего не делает

5. @Siguze Извините за мое упущение, я заполнил его.

Ответ №1:

Я не получил возвращаемое значение, что не так с кодом?

Приведенный ниже код устанавливает ans[0] значение 0, нулевой символ.

 if (i == 0) {
  *ans   = (char)i;
  

Печать возвращаемого указателя в виде строки ничего не выводит, поскольку строка заканчивается немедленно.

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

1. Я намеревался преобразовать цифры в буквы. Как я могу это сделать?

2. @Merrifield Что вы подразумеваете под преобразованием чисел в буквы? Вы имели в виду преобразование числа 512 в строку, содержащую 512?

3. @Shovo >> Вы имели в виду преобразование числа 512 в строку, содержащую 512? ДА.

4. @Merrifield Я написал программу для выполнения преобразования. вы можете проверить ссылку . Для лучшего просмотра я поделился через Pastebin

5. @Shovo Спасибо, но эта страница больше не доступна.