Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2022, 22:07   #1
Nikita.1.1
Новичок
Джуниор
 
Регистрация: 15.12.2022
Сообщений: 1
По умолчанию (язык си)Этот код определяет слова палиндромы, но мне надо что б он еще определял дополнительно самое большое слово в строке

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>

int check (char str[])
{
int i,length;
length=strlen(str);
for (i=0;i<length;i++)
if (str[i]!=str[(length-1)-i]) return 0;
return 1;
}

int main(void)
{
char str[80];;
char* t;
int k=0,i = 0;
char *tmp1, *sds, *simv=". ";
int max=0;
printf("Enter text:\n");

gets(str);
t=strtok(str," ");
while (t != NULL) {
if (check(t)==1) {
printf("\nWord: %s",t);
printf(" - Palindrome");
}
else {
printf("\nWord: %s",t); printf(" - Not Palindrome");
}

t = strtok (NULL, " ");
}
return 0;
}
Nikita.1.1 вне форума Ответить с цитированием
Старый 18.12.2022, 02:08   #2
Пётр Седов
Форумчанин
 
Регистрация: 26.10.2022
Сообщений: 119
По умолчанию

Цитата:
Сообщение от Nikita.1.1 Посмотреть сообщение
Код:
int check (char str[])
{
   int i,length;
   length=strlen(str);
   for (i=0;i<length;i++)
      if (str[i]!=str[(length-1)-i]) return 0;
   return 1;
}
Здесь можно доходить только до середины: i < length / 2.
Код:
int main(void) {
   char text[80];
   char* word;
   int word_len;
   char* max_word = NULL;
   int max_word_len = 0;

   printf("Enter text:\n");
   gets(text);

   word = strtok(text, " ");
   while (word != NULL) {
      if (check(word)) {
         printf("Word: %s - Palindrome\n", word);
      } else {
         printf("Word: %s - Not Palindrome\n", word);
      }

      word_len = strlen(word);
      if (word_len > max_word_len) {
         max_word_len = word_len;
         max_word = word;
      }

      word = strtok(NULL, " ");
   }

   if (max_word != NULL) {
      printf("Max word: %s\n", max_word);
   }

   return 0;
}
Пётр Седов вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана строка.В строке слова разделяются с 1-2 пробелами.Найти самое короткое слово в строке с помощью C++ Youlia Общие вопросы C/C++ 1 04.06.2019 12:34
Работа со строками. Превернуть слова в строке и удалить слова-палиндромы (С) Andr0meda Помощь студентам 0 19.12.2017 17:32
Найти в строке самое короткое и самое длинное слова kiryavolk Паскаль, Turbo Pascal, PascalABC.NET 4 28.12.2016 20:46
В заданной строке текста выведите самое короткое (длинное) слово. Учтите, что таких слов может быть несколько. Удалите (удвойте) эти слова.(PascalABCNET) FlayGlam Помощь студентам 0 03.12.2016 09:58
С# найти самое длинное и самое короткое слово в строке и вывести их Зеленый Чай Помощь студентам 4 06.01.2012 18:40