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

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

Войти
Регистрация
Восстановить пароль
 
 
Ronnie_
4 / 4 / 0
Регистрация: 10.10.2013
Сообщений: 91
#1

Работа с аргументами - C++

17.12.2013, 19:41. Просмотров 680. Ответов 21
Метки нет (Все метки)

Задание такое: Написать программу с использованием функции, которая сравнивает две строки, заданные в качестве её аргументов. Если аргумент только один, то найти длину этой строки.
Программа есть, но нужно доработать, а именно в той части где должно выполняться условие, что если аргумент один, найти длину этой строки. Помогите доделать согласно условию.

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
#include <iostream>
#include <string>
 
using namespace std;
 
// прототипы
void func(string, string);
void func(string);
 
int main()
{
    setlocale(LC_ALL,"Russian");
    string first, second;
 
    cout << "Введите первую строку: ";
    getline(cin, first);
    cout << "Введите вторую строку: ";
    getline(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;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2013, 19:41     Работа с аргументами
Посмотрите здесь:

Работа с аргументами ф-й в С++ - C++
Задача: Написать прог. с ф-ей, что сравнивает две строки, заданных в качестве её аргументов (знач. 2-го рядка задать &quot;по умолчанию&quot;), если...

Работа с аргументами консоли - C++
Привет. Подскажите на простом примере если я в консоли хочу например ввести команду &quot;print 3&quot;. И чтобы после этого в консоли вывелось &quot;3&quot;....

Запуск приложения с параметрами. Работа с аргументами - C++
Приветствую всех, у меня вопрос по созданию консольного приложения на вход которому передаются след. аргументы в argv год YYYY. В...

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

Функция с аргументами - C++
Написать функцию с аргументами вещественный массив x размер массива n. Функция возвращает значение суммы элементов массива, начиная с...

Вызов конструктора с аргументами - C++
есть класс приложения test_proj в интерфейсе класса в файле test_proj.h создается объект класса Settings. class test_proj { ...

Конструкторы с тремя аргументами - C++
Как мне это реализировать в классах, если у меня уже есть функция в какой я ввожу строки и столбики рандомно генерирую числа в это массив и...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
outoftime
║XLR8║
508 / 430 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
17.12.2013, 20:00     Работа с аргументами #2
C++
1
int func(string s) { return s.size(); }
Добавлено через 25 секунд
Цитата Сообщение от Ronnie_ Посмотреть сообщение
void func(string);
Это вообще к чему?!
Ronnie_
4 / 4 / 0
Регистрация: 10.10.2013
Сообщений: 91
17.12.2013, 20:09  [ТС]     Работа с аргументами #3
Можете конкретно целый код дать уже отредактированный. Потому что я вставил в программу ваш ответ, подчёркивает ошибку.
Обратите внимание на условие если аргумент один, найти длину этой строки.
lpvoid
322 / 305 / 17
Регистрация: 06.03.2013
Сообщений: 869
17.12.2013, 20:11     Работа с аргументами #4
Цитата Сообщение от Ronnie_ Посмотреть сообщение
void func(string);
а реализацию по-вашему Страуструп компилятор сгенерирует?
Ronnie_
4 / 4 / 0
Регистрация: 10.10.2013
Сообщений: 91
17.12.2013, 20:14  [ТС]     Работа с аргументами #5
Ну что вы хотите я новичок ещё не опытный, мне нужно как-то разобраться и нужна помощь.
lpvoid
322 / 305 / 17
Регистрация: 06.03.2013
Сообщений: 869
17.12.2013, 20:17     Работа с аргументами #6
Ronnie_, объявили прототип и вызываете - будьте добры реализовать функцию с подходящей сигнатурой. в вашем случае код будет выглядеть как-то так:
C++
1
2
3
4
5
6
7
void func(string);
 
// многокода ...
 
void func(string s) {
    // реализуем сравнение
}
Ronnie_
4 / 4 / 0
Регистрация: 10.10.2013
Сообщений: 91
17.12.2013, 20:19  [ТС]     Работа с аргументами #7
Да....я прямо вас так понял.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.12.2013, 20:19     Работа с аргументами #8
Цитата Сообщение от Ronnie_ Посмотреть сообщение
Потому что я вставил в программу ваш ответ, подчёркивает ошибку.
Код нужно показывать, ясновидящих тут нет...
lpvoid
322 / 305 / 17
Регистрация: 06.03.2013
Сообщений: 869
17.12.2013, 20:21     Работа с аргументами #9
Ronnie_, да чорд же!
Код
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
#include <iostream>
#include <string>
 
using namespace std;
 
// прототипы
void func(string, string);
void func(string);
 
int main()
{
    setlocale(LC_ALL,"Russian");
    string first, second;
 
    cout << "Введите первую строку: ";
    getline(cin, first);
    cout << "Введите вторую строку: ";
    getline(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 s) {
    std::cout << "String length: " << s.size() << std::endl;
}


если еще будут ошибки - постите здесь.
Ronnie_
4 / 4 / 0
Регистрация: 10.10.2013
Сообщений: 91
17.12.2013, 20:34  [ТС]     Работа с аргументами #10
скажите мне я что-то не допонял в задании, вот там говорится, что если аргумент один, то найти длину этой строки. Значит значение длины строки должно выводиться только когда введена одна строка. А когда две строки введены то длина не должна выводиться? По идеи должно быть условие, что если одна из строк не введена, т.е. аргумент один, то выводить длину, а иначе если введены две строки не выводить. Или не так?
lpvoid
322 / 305 / 17
Регистрация: 06.03.2013
Сообщений: 869
17.12.2013, 20:36     Работа с аргументами #11
Ronnie_, когда введена одна строка, вызывается функция с сигнатурой void func(string), когда две - void func(string, string). почитайте про перегрузку функций в c++.
Ronnie_
4 / 4 / 0
Регистрация: 10.10.2013
Сообщений: 91
17.12.2013, 20:41  [ТС]     Работа с аргументами #12
а почему же длина выводится и в том и в другом случае, ведь по условию получается длина строки должна выводиться получается когда void func(string)
lpvoid
322 / 305 / 17
Регистрация: 06.03.2013
Сообщений: 869
17.12.2013, 20:45     Работа с аргументами #13
Цитата Сообщение от Ronnie_ Посмотреть сообщение
func(first);
* * func(second);
вы ведь два раза вызываете.
Ronnie_
4 / 4 / 0
Регистрация: 10.10.2013
Сообщений: 91
17.12.2013, 20:48  [ТС]     Работа с аргументами #14
а как тогда сделать, чтобы длина выводилась только тогда когда есть только один аргумент(т.е. введена толька одна строка), а в других случаях не выводить длину.
или это невозможно?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2013, 20:51     Работа с аргументами
Еще ссылки по теме:

Рекурсивная функция a^b с 2-я аргументами - C++
Собственно возможно ли это сделать? Я не смог придумать с 2-я аргументами, только с 3-я #include &lt;iostream&gt; #include &lt;cstdlib&gt; ...

Непонятки с аргументами функции - C++
Класс:class MyStruct { public: struct Element { Element * next; Element * prev; string BookOrMagazine; string...

Функция main с аргументами - C++
Приветствую, подскажите где именно указывать параметры аргументов(int argc, char **argv), если использовать следующий тип записи int...

Наследование и конструктор с аргументами по умолчанию - C++
Есть некоторый абстрактный класс &quot;объект&quot;, который наследуют все объекты (код конструктора): Object(const D3DXVECTOR3&amp; position, ...

Разбор сложной строки с аргументами - C++
Здравствуйте друзья! Мне кажеться я заблудился в этой жизни(( В мою длл через пайп поступает строка, а точнее комманда на чтение или...


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

Или воспользуйтесь поиском по форуму:
lpvoid
322 / 305 / 17
Регистрация: 06.03.2013
Сообщений: 869
17.12.2013, 20:51     Работа с аргументами #15
Ronnie_,
C++
1
2
3
4
5
if(second == "") {
    // .. 
} else {
    // ..
}
Yandex
Объявления
17.12.2013, 20:51     Работа с аргументами
Ответ Создать тему
Опции темы

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