Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 1
Регистрация: 08.09.2014
Сообщений: 77

Исправить ошибку! Ввести две строки, если str1!=str2, то объединить их

28.11.2014, 18:37. Показов 2096. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
С помощью указателя на функцию нужно было реализовать программу, которая сравнивает две строки, если она неравны, то объединить их.

Выбило следующие ошибки (указаны ниже), подскажите что не так?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
#include <stdio.h>
#include <string.h>
 
 
using namespace std;
 
void check(char *a, char *b,
           int (*cmp)(const char *, const char *));
 
void func (char *a, char *b, 
           char (*skl)(const char *, const char *));
 
void main()
{
  setlocale(0, "Russian"); // подключение локализации, русские символы в консоли
 
  char str1[80], str2[80];
 
  int (*p)(const char *, const char *); /* указатель на функцию */
 
  p = strcmp; /* присваивает адрес функции strcmp указателю p */
  
  while(true)
  {
      cout << "При вводе 0 работа прекращается!" << endl;
      cout << "Введите две строки:" << endl;
      cout << "Str1: ";
              cin >> str1;
      cout << "Str2: ";
              cin >> str2;
      if (str1[0] == 0 || str2[0] == 0)
      {
          break;
      }
      check(str1, str2, p); /* Передает адрес функции strcmp посредством указателя p */
  }
 
  system("pause"); // системная пауза
}
 
void check(char *a, char *b, int (*cmp)(const char *, const char *))
{
  char (*m)(const char *, const char *);
  m = strcat;
  cout << "Проверка на совпадение:" << endl;
  if(!(*cmp)(a, b))
      cout << "Равны" << endl;
  else
     { 
      cout << "Не равны" << endl;
      func (a, b, m);
     }
}
 
void func (char *a, char *b, char (*skl)(const char *, const char *))
{
    // операция конкатенации, объединение строк
    strcat(a, " "); // скопировать пробел после предложения/
    strcat(a, b); //скопировать str1 в str2
    cout << a << endl;
}
Миниатюры
Исправить ошибку! Ввести две строки, если str1!=str2, то объединить их  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.11.2014, 18:37
Ответы с готовыми решениями:

Функцию, которая получает два параметра str1 и str2 типа string и возвращает позицию начала последнего появления str2 в str1
Напишите функцию rightposition, которая получает два параметра str1 и str2 типа string и возвращает позицию начала последнего появления...

Заменить все вхождения str1 на str2 (str1 вводится из файла, а str2 - с клавиатуры)
заменить все вхождения подстроки str1 на подстроку str2; строка str1 вводится из файла, а строка str2 с клавиатуры {Ha C++}

Функция: проверить, является ли строка str1 подстрокой строки str2
Доброго времени суток) кому не составит большого труда, прошу помочь с заданием) Написать функцию ISSUBSTR(str1,str2), которая выясняет,...

23
11 / 11 / 3
Регистрация: 18.12.2011
Сообщений: 112
28.11.2014, 21:06
Студворк — интернет-сервис помощи студентам
Или вот так, это 100% вариант сверху жмете ПРОЕКТ->Свойства проекта и дальше как в картинке
Миниатюры
Исправить ошибку! Ввести две строки, если str1!=str2, то объединить их  
0
1 / 1 / 1
Регистрация: 08.09.2014
Сообщений: 77
28.11.2014, 21:16  [ТС]
ShikiofDevil, Вы не поверите, но так я тоже делала) Но вижуал даже не отреагировал)
0
11 / 11 / 3
Регистрация: 18.12.2011
Сообщений: 112
28.11.2014, 21:28
а перезапускать саму вижуалку не пробовали?

Добавлено через 4 минуты
И вот еще попробуйте Ошибка в SCANF
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2552 / 2066 / 971
Регистрация: 09.10.2013
Сообщений: 4,908
Записей в блоге: 4
28.11.2014, 22:05
Цитата Сообщение от Yana_Chernobay Посмотреть сообщение
if(!(*cmp)(a, b))
'*' не нужна
Цитата Сообщение от Yana_Chernobay Посмотреть сообщение
char (*m)(const char *, const char *);
m = strcat
не совпадают сигнатуры нужно
C++
1
2
3
int (*m)(const char *, const char *);
//...
void func (char *a, char *b, int (*skl)(const char *, const char *))
объявите тип - указатель на функцию
C++
1
typedef int (*comparer)(const char *, const char *);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.11.2014, 22:05

Функция определяющая наличие символов строки str2 в строке str1
Написать и протестировать функцию STRS(str1, str2), которая определяет, встретился ли в строке str1 какой-нибудь символ из строки str2.

Определить, встретился ли в строке str1 какой-нибудь символ из строки str2
Нужно написать и протестировать функцию STRS(str1, str2), которая определяет, встретился ли в строке str1 какой-нибудь символ из строки...

Выяснить, можно ли из строки str1 получить строку str2 путем перестановки символов
даны две строки str1 и str2 .Выяснить,можно ли из строки str1 получить строку str2 путем перестановки символов

Если строки одинаковы, объединить две строки, исключив из второй первые десять символов
Ввести строки. Сравнить первые десять символов двух строк. Если они одинаковы, объединить две строки, исключив из второй первые десять...

Найти первую подстроку str2 в строке str1
Ввести строки str1 и str2 с клавиатуры.Найти первую подстроку str2 в строке str1.Вывести на экран индекс начала подстроки.Если строка не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru