Я пытаюсь создать функцию, которая будет получать массив строк и размер и будет возвращать строку, состоящую из буквы наибольшего значения ASCII каждого слова, и размер строки должен быть точным, и я ' Нельзя использовать оператор [] (это моя главная проблема).
так для:
char * strArr [SIZE] = {"привет", "и", "хорошо", "утро"};
функция должна вернуть строку со словом
"Онор"
.
Итак, я подумал о создании двойного цикла for, сначала он приведет меня к расположению каждого слова в массиве, а внутренний поможет мне просмотреть каждое слово.
В настоящее время у меня возникают проблемы с поиском правильного формата с помощью моих указателей, чтобы на самом деле пролистать буквы моего первого слова.
Я знаю, что еще не проверил, правильно ли выделено мое память, и еще не освободил свою память, так как сначала пытаюсь выяснить, что не так.
char *bigLetters(char *str[], int size)
{
char *strNew = (char *)malloc((size + 1) * sizeof(char));
char max = 'a';
for (int i = 0; i < size; i++)
{
for (int j = 0; (*(str + i)+j) != NULL; j++)
{
if ((*(str + i) + j) >= max)
{
max = (*(str + i) + j);
}
}
*(strNew + i) = max;
}
*(strNew +(size+1)) = NULL;
return *(strNew);
}
void main()
{
char *strArr[SIZE] = { "hello", "and", "good", "morning" };
char *res = bigLetters(strArr, SIZE);
printf("The new string is --> %s\n", res);
system("pause");
}