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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2022, 18:28   #1
quakenez
Пользователь
 
Регистрация: 02.12.2021
Сообщений: 16
Сообщение Строки в Си

Всем привет, помогите исправить программу. Программа должна вывести повторяющиеся слова в строке. Заранее спасибо!!

Код:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
    char str[256];
    char *p;
    printf("Input str: ");
    gets(str); //вводим строку
    for(p = strtok(str, " "); p; p = strtok(NULL, " "))   // здесь рассматриваем первое слово в строке
    {
        if (strstr(str,p)!=0)                              // если это слово повторяется в строке
            printf("%s \n",p);                             // то выводим ее на экран
        p=NULL;                                            // освобождаем место для p
    }
    return 0;
}

Последний раз редактировалось BDA; 07.06.2022 в 19:16.
quakenez вне форума Ответить с цитированием
Старый 07.06.2022, 19:01   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

1) В отладчике можно увидеть значения и пройти программу по шагам, не задавая элементарных вопросов.
2) Если не знаете как пользоваться отладчиком, то хотя бы распечатайте значения, с которыми производятся действия.
Код:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
  char str[256];
  char *p;
  printf("Input str: ");
  gets(str); //вводим строку
  printf("String processed: %s\n\n", str);
  for(p = strtok(str, " "); p; p = strtok(NULL, " ")) // здесь рассматриваем первое слово в строке
  {
    printf("word(%d, 0x%08X) %s\nstr(%d, 0x%08X) %s\n\n", strlen(p), p, p, strlen(str), str, str);
    if (strstr(str,p)!=0) // если это слово повторяется в строке
      printf("%s \n",p); // то выводим ее на экран
    p=NULL; // освобождаем место для p
  }
  return 0;
}

Последний раз редактировалось macomics; 07.06.2022 в 19:08.
macomics вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сравнить конечное время каждой строки с начальным временем следующей строки и если разница меньше минуты, то объединить две сравниваемые строки в одну garuna Общие вопросы Delphi 3 01.08.2021 12:03
Выводить только измененные строки. Перед каждой строкой записывать номер строки в исходном тексте.используя строки и текст.файл nero4ka C++ Builder 1 13.06.2015 07:14
Задача на строки. Даны две строки. Определить можно ли из символов первой строки получить вторую строку.( написать подпрограммой и ANTON1994 Паскаль, Turbo Pascal, PascalABC.NET 5 09.02.2013 14:07
Программа на языке "Ассемблер" - ввод строки, анализ длины строки, добавление точки в конец строки Алексей_2012 Помощь студентам 1 05.04.2012 11:26
Определять максимальную длину той части строки s, которая не содержит символы из строки s1. Александе еть я Общие вопросы C/C++ 5 13.04.2010 20:54