Функция не возвращает значение - 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; }
Решение задачи: «Функция не возвращает значение»
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; }
Объяснение кода листинга программы
- В функции MyStrToken происходит разбиение строки на подстроки.
- В каждой подстроке удаляются все символы, на которые не указывает указатель.
- Результатом работы функции является размер подстроки, которую она возвращает.
- В функции main вызывается функция MyStrToken с аргументом
А роза упала на лапу Азора!
. - В цикле while выводится на экран размер и сама подстрока.
- Размер подстроки постепенно уменьшается, пока не станет равным нулю.
- Цикл while завершается и функция main возвращает 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д