Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
ЛераБ
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 12
1

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

30.11.2012, 00:07. Просмотров 1460. Ответов 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
Ответы с готовыми решениями:

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

Написать программу, которая рассчитывает значение функции от 2 аргументов х и y, которые заданы таблицей
Написать программу, которая рассчитывает значение функции от 2 аргументов х и...

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

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

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

8
I.M.
567 / 550 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
30.11.2012, 00:31 2
код из книжки?
не очень понял, что обнуляется. задача решается так: либо создается функция сравнения, принимающая только один аргумент, либо внутри уже написанной функции сравнения надо проверять второй аргумент на пустоту
0
Leo Di Grigio
0 / 0 / 1
Регистрация: 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 / 2
Регистрация: 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.
567 / 550 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
30.11.2012, 01:32 6
Neznakomec, перегрузка верная

Добавлено через 1 минуту
ЛераБ, программа написана для строк без пробелов
1
Leo Di Grigio
0 / 0 / 1
Регистрация: 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Эксперт С++
10092 / 6002 / 1504
Регистрация: 25.07.2009
Сообщений: 11,384
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
30.11.2012, 02:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2012, 02:06

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

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

Написать программу,которая сравнивает два числа,введеных с клавиатуры
Написать программу,которая сравнивает два числа,введеных с...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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