Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
ЛераБ
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 12
#1

Написать программу с использованием функции, которая сравнивает две строки, заданные в качестве её аргументов - C++

30.11.2012, 00:07. Просмотров 1280. Ответов 8
Метки нет (Все метки)

Написать программу с использованием функции, которая сравнивает две строки, заданные в качестве её аргументов. Если аргумент только один, то найти длину этой строки.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string.h>
using namespace std;
void func(string s1=NULL, string s2=NULL);
int main()
{setlocale(LC_ALL,"Russian");
string s1="первая"; string s2="вторая";
func("gsdjd","whtj");
func(s1,s2);
//cout«s1«"\n";
//cout«s2«"\n";
system("pause");
return 0;
}
void func(string s1, string s2)
{
if (s1.size()==s2.size()) cout«"Строки равны \n";
else if (s1.size()>s2.size()) cout«"Первая строка больше второй \n";
else cout«"Вторая строка больше первой \n";
}
Тут нету самого главного куска)Который выводит размер,а с ним то как раз и проблемы:то обнуляет, то компилятор ругается.Заранее спасибо за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2012, 00:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать программу с использованием функции, которая сравнивает две строки, заданные в качестве её аргументов (C++):

Написать программу, которая вычисляет значение функции от двух аргументов Х и У - C++
Помогите решить, пожалуйста. Написать программу, которая вычисляет значение функции от двух аргументов Х и У.

Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами - C++
Имеется такое задание: Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами. Можете объяснить...

Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами. - C++
Пишу в Microsoft Visual Studio -&gt;Win32 Console application -&gt;C++. Помогите пожалуйста Разработать функцию, которая сравнивает две строки,...

Написать функцию, которая получает в качестве аргументов целое положительное число и систему счисления - C++
Всем Здравствуйте, Дамы и Господа. Вот получил такое задание. но что-то вообще не понимаю. Написать функцию, которая получает в...

Написать программу,которая сравнивает два числа - C++
Разработать программные модули для решения задачи,используя предложение if. Написать программу,которая сравнивает два введеных с клавиатуры...

Напишите программу, содержащую функцию, которая принимает два числа в качестве аргументов и возвращает их произведения. - C++
Напишите программу, содержащую функцию, которая принимает два числа в качестве аргументов и возвращает их произведения.

8
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
30.11.2012, 00:31 #2
код из книжки?
не очень понял, что обнуляется. задача решается так: либо создается функция сравнения, принимающая только один аргумент, либо внутри уже написанной функции сравнения надо проверять второй аргумент на пустоту
0
Leo Di Grigio
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 5
30.11.2012, 00:47 #3
Можете использовать перегрузку. Если я верно понял задачу.
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
#include <iostream>
#include <string>
 
using namespace std;
 
// прототипы
void func(string, string);
void func(string);
 
int main()
{
    setlocale(0,".1251");
    string first, second;
 
    cout << "Введите первую строку: ";
    cin >> first;
    cout << "Введите вторую строку: ";
    cin >> second;
 
    func(first, second);
    func(first);
    func(second);
 
    system("pause");
    return 0;
}
 
// функция сравнивает строки
void func(string first, string second)
{
    if (first == second)
    {
        cout << "Строки одинаковы" << endl;
    }
    else
    {
        cout << "Строки различны" << endl;
    }
}
 
 
// функция выводит размер
void func(string in)
{
    cout << in.size() << endl;
}
0
Neznakomec
3 / 3 / 0
Регистрация: 23.10.2012
Сообщений: 17
30.11.2012, 01:28 #4
Цитата Сообщение от Leo Di Grigio Посмотреть сообщение
Можете использовать перегрузку. Если я верно понял задачу.
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
#include <iostream>
#include <string>
 
using namespace std;
 
// прототипы
void func(string, string);
void func(string);
 
int main()
{
    setlocale(0,".1251");
    string first, second;
 
    cout << "Введите первую строку: ";
    cin >> first;
    cout << "Введите вторую строку: ";
    cin >> second;
 
    func(first, second);
    func(first);
    func(second);
 
    system("pause");
    return 0;
}
 
// функция сравнивает строки
void func(string first, string second)
{
    if (first == second)
    {
        cout << "Строки одинаковы" << endl;
    }
    else
    {
        cout << "Строки различны" << endl;
    }
}
 
 
// функция выводит размер
void func(string in)
{
    cout << in.size() << endl;
}
Ты сделал перегрузку функции причем не правильно, ввел одно и тоже имя для функции и типы одинаковые из-за этого она некорректо работает, не давая вводить вторую строку..
" // прототипы
void func(string, string);
void func(string); "
1
ЛераБ
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 12
30.11.2012, 01:29  [ТС] #5
нечто такое она выводит. У меня мозгов не хватает, чтоб исправить.
0
Миниатюры
Написать программу с использованием функции, которая сравнивает две строки, заданные в качестве её аргументов  
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
30.11.2012, 01:32 #6
Neznakomec, перегрузка верная

Добавлено через 1 минуту
ЛераБ, программа написана для строк без пробелов
1
Leo Di Grigio
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 5
30.11.2012, 01:36 #7
C++
1
2
3
4
    cout << "Введите первую строку: ";
    getline(cin, first);
    cout << "Введите вторую строку: ";
    getline(cin, second);
Замените ввод, пожалуйста.
И ... перегрузка вроде верна. Суть перегрузки(для этого случая) в том, что бы одна и та же функция принимала разные параметры.
0
ЛераБ
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 12
30.11.2012, 01:54  [ТС] #8
Поздно выпила боржоми... нужно что бы строки были уже введены. Извините за тормознутость и беспокойство. Существующая программа хорошо работает, спасибо.
0
easybudda
Модератор
Эксперт CЭксперт С++
9662 / 5611 / 952
Регистрация: 25.07.2009
Сообщений: 10,774
30.11.2012, 02:06 #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
 
int madcmp(const std::string & s1, const std::string & s2 = "" ) {
    return s1.compare(s2);
}
 
int main() {
    std::string s1 = "abc", s2 = "xyz";
    
    std::cout << madcmp(s1, s2) << std::endl << madcmp(s1) << std::endl;
    
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2012, 02:06
Привет! Вот еще темы с ответами:

Написать программу,которая сравнивает два числа,введеных с клавиатуры - C++
Написать программу,которая сравнивает два числа,введеных с клавиатуры..Программа должна указать какое число больше,или,если числа...

Написать программу, которая сравнивает два введенных с клавиатуры числа - C++
Помогите решить пожалуйста) Написать программу, которая сравнивает два введенных с клавиатуры числа. Программа должна указать, какое...

Написать программу, которая вычисляет оптимальный вес девушки, сравнивает его с реальным - C++
На с++ в консольном Нужно решить задачу на любой цикл(цикл с постусловием,цикл с пердусловием,цикл с параметром) Написать программу,...

Написать программу, определяющую наклон прямой, проходящей через две заданные точки - C++
пожалуйста помогите с составлением кода 5.Напишите программу, которая после получения значений координат двух точек на плоскости ...


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
30.11.2012, 02:06
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru