Функция не возвращает значение - C (СИ)

Узнай цену своей работы

Формулировка задачи:

int main()
{
// ... 
int words=my_strtok();
//....
}
 
int my_strtok()
{
    char _string[length]=" "; //Промежуточная строка
    int u=0;
    int uu=0;
 
    for(int i=0;i<strlen(str-1);i++)
    {
        if(str[i]>='А' && str[i]<='я' || str[i]=='/')
            {
                _string[u]=str[i];
                u++;
            }
        else
            {
                if(str[i+1]>='А' && str[i+1]<='я')
                    {
                        strcpy(Array_String[uu], _string);
                        memset(_string, 0, sizeof(_string));
                        u=0;
                        uu++;
                    }
            }
    }
    return uu;
}
Почему в words не записывается значение uu? и как сделать чтоб записывалось?

Решение задачи: «Функция не возвращает значение»

textual
Листинг программы
static char    pszTemp[MAX_PATH];
static int     iCurr = 0;
 
unsigned int MyStrToken(char* pszStr)
{
   memset(pszTemp,0,sizeof(pszTemp));
 
   int   iPos = iCurr;
 
   while (pszStr && *pszStr && pszStr[iPos])
   {
      while (pszStr[iPos] && (((pszStr[iPos] >= 'А') && (pszStr[iPos] <= 'я')) || pszStr[iPos] == '/'))
      {
         ++iPos;
      }
 
      int   iSize = iPos - iCurr;
 
      if (iSize)
      {
         memcpy(pszTemp,&pszStr[iCurr],iSize);
 
         iCurr = iPos;
   
         return iSize;
      }
 
      ++iPos;
      ++iCurr;
   }
 
   return 0;
}
 
int main(int argc,char** argv)
{
   unsigned int   iSize = 0;
 
   while (iSize = MyStrToken("А роза упала на лапу Азора!"))
   {
      printf("Size: %d  Str: %s\n",iSize,pszTemp);
   }
 
   return 0;
}

Объяснение кода листинга программы

  1. В функции MyStrToken происходит разбиение строки на подстроки.
  2. В каждой подстроке удаляются все символы, на которые не указывает указатель.
  3. Результатом работы функции является размер подстроки, которую она возвращает.
  4. В функции main вызывается функция MyStrToken с аргументом А роза упала на лапу Азора!.
  5. В цикле while выводится на экран размер и сама подстрока.
  6. Размер подстроки постепенно уменьшается, пока не станет равным нулю.
  7. Цикл while завершается и функция main возвращает 0.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы