Программа должна вернуть слово с наибольшим количеством букв.
#define _CRT_SECURE_NO_WARNINGS #include "stdio.h" #include "conio.h" #include "string.h" int CountofSym(char* szStr) //function that calculate the count of the word { int iCount = 0; while (szStr[iCount] != '\0') { iCount++; } return iCount; } char MaxString(char* szStr) //that have to return the largest word { char* pch; char* szNewString[100]; char* szMaxWord[1]; int iMax, iCurrent; pch = strtok(szStr, " ,."); int i = 0; while (pch != '\0') { szNewString[i] = pch; pch = strtok(NULL, " ,."); i++; } iMax = CountofSym(szNewString[0]); *szMaxWord = szNewString[0]; for (int j = 1; j < i; j++) { iCurrent = CountofSym(szNewString[j]); if (iMax < iCurrent) { iMax = iCurrent; *szMaxWord = szNewString[j]; } } return *szMaxWord; } int main() { char szString[100]; gets(szString); char szMaximum[1]; szMaximum[0] = MaxString(szString); printf("\n%s ", *szMaximum); _getch(); return 0; }
Что я уже пробовал:
Программа должна вернуть слово с наибольшим количеством букв. Ошибка может быть в точке возврата или в указателях. Может быть, он возвращает адрес значения. Я сделал несколько фотографий. Смотреть на них.
Папка - Google Диск[^]
Richard MacCutchan
MaxString должен возвращать указатель, а не символ.
Member 13528039
В этой строке: return *szMaxWord; ??
Richard MacCutchan
В объявлении функции:char* MaxString(char* szStr)
Кроме того, какой смысл создавать массивы только для одного элемента?
Member 13528039
Спасибо.
Я не знаю. Я догадался, что массив помог мне понять