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

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

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

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

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;
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2013, 19:41
Ответы с готовыми решениями:

Работа с аргументами ф-й в С++
Задача: Написать прог. с ф-ей, что сравнивает две строки, заданных в качестве её аргументов (знач....

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

Работа с аргументами командной строки
ПОдскажите, как через аргументы командной строки вывести {1 2 3 4 5} в файл по блочно из массива?

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

21
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
17.12.2013, 20:00 2
C++
1
int func(string s) { return s.size(); }
Добавлено через 25 секунд
Цитата Сообщение от Ronnie_ Посмотреть сообщение
void func(string);
Это вообще к чему?!
0
4 / 4 / 0
Регистрация: 10.10.2013
Сообщений: 91
17.12.2013, 20:09  [ТС] 3
Можете конкретно целый код дать уже отредактированный. Потому что я вставил в программу ваш ответ, подчёркивает ошибку.
Обратите внимание на условие если аргумент один, найти длину этой строки.
0
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
17.12.2013, 20:11 4
Цитата Сообщение от Ronnie_ Посмотреть сообщение
void func(string);
а реализацию по-вашему Страуструп компилятор сгенерирует?
0
4 / 4 / 0
Регистрация: 10.10.2013
Сообщений: 91
17.12.2013, 20:14  [ТС] 5
Ну что вы хотите я новичок ещё не опытный, мне нужно как-то разобраться и нужна помощь.
0
324 / 307 / 59
Регистрация: 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) {
    // реализуем сравнение
}
0
4 / 4 / 0
Регистрация: 10.10.2013
Сообщений: 91
17.12.2013, 20:19  [ТС] 7
Да....я прямо вас так понял.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
17.12.2013, 20:19 8
Цитата Сообщение от Ronnie_ Посмотреть сообщение
Потому что я вставил в программу ваш ответ, подчёркивает ошибку.
Код нужно показывать, ясновидящих тут нет...
0
324 / 307 / 59
Регистрация: 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;
}


если еще будут ошибки - постите здесь.
0
4 / 4 / 0
Регистрация: 10.10.2013
Сообщений: 91
17.12.2013, 20:34  [ТС] 10
скажите мне я что-то не допонял в задании, вот там говорится, что если аргумент один, то найти длину этой строки. Значит значение длины строки должно выводиться только когда введена одна строка. А когда две строки введены то длина не должна выводиться? По идеи должно быть условие, что если одна из строк не введена, т.е. аргумент один, то выводить длину, а иначе если введены две строки не выводить. Или не так?
0
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
17.12.2013, 20:36 11
Ronnie_, когда введена одна строка, вызывается функция с сигнатурой void func(string), когда две - void func(string, string). почитайте про перегрузку функций в c++.
0
4 / 4 / 0
Регистрация: 10.10.2013
Сообщений: 91
17.12.2013, 20:41  [ТС] 12
а почему же длина выводится и в том и в другом случае, ведь по условию получается длина строки должна выводиться получается когда void func(string)
0
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
17.12.2013, 20:45 13
Цитата Сообщение от Ronnie_ Посмотреть сообщение
func(first);
* * func(second);
вы ведь два раза вызываете.
0
4 / 4 / 0
Регистрация: 10.10.2013
Сообщений: 91
17.12.2013, 20:48  [ТС] 14
а как тогда сделать, чтобы длина выводилась только тогда когда есть только один аргумент(т.е. введена толька одна строка), а в других случаях не выводить длину.
или это невозможно?
0
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
17.12.2013, 20:51 15
Ronnie_,
C++
1
2
3
4
5
if(second == "") {
    // .. 
} else {
    // ..
}
0
4 / 4 / 0
Регистрация: 10.10.2013
Сообщений: 91
17.12.2013, 21:02  [ТС] 16
Как правильно, у меня ошибка.
error C2084: функция "void func(std::string,std::string)" уже имеет текст реализации

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
#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 second, string first)
    {if(second == "")
{
    cout << "Длина строки одного аргумента: " << first.size() << endl; 
} 
    else
    {
    cout << "Аргумент не один: ";
}
}
0
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
17.12.2013, 21:13 17
Посмотрите внимательно,вы пытаетесь дважды реализовать одну и ту же функцию.
0
4 / 4 / 0
Регистрация: 10.10.2013
Сообщений: 91
17.12.2013, 21:15  [ТС] 18
где именно ошибка, помогите исправить, я уже ничего не догоняю
0
New to C++
83 / 44 / 10
Регистрация: 14.01.2013
Сообщений: 258
17.12.2013, 21:36 19
Ronnie_, Вы дважды реализуйте, одну и туже функцию, это строка 29,и строка 41
У вас 2 объявления функции это
C++
1
2
void func(string, string);
void func(string);
А вы прописывайте
C++
1
2
void func(string first, string second)
void func(string second, string first)
Если говорить простым языком, то у вас в первой функции 2 аргумента а во второй функции 1 аргумент, а в
C++
1
2
void func(string first, string second)
void func(string second, string first)
То тут у вас по 2 аргумента на каждую функцию.....
0
4 / 4 / 0
Регистрация: 10.10.2013
Сообщений: 91
17.12.2013, 21:50  [ТС] 20
исправил я как вы сказали, теперь ещё больше ошибок, в чём проблема? я не пойму программа хорошо работала мне только нужно добавить вывод длины если введён только один аргумент, почему так всё усложнено, нельзя просто помочь сделать нормально работающий код
error C2660: func: функция не принимает 1 аргументов
error C2660: func: функция не принимает 1 аргументов
error C2084: функция "void func(std::string,std::string)" уже имеет текст реализации
IntelliSense: слишком мало аргументов в вызове функции

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
#include <iostream>
#include <string>
 
using namespace std;
 
// прототипы
void func(string first, string second);
void func(string second, string first);
 
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 second, string first)
    {if(second == "")
{
    cout << "Длина строки одного аргумента: " << first.size() << endl; 
} 
    else
    {
    cout << "Аргумент не один: ";
}
}
0
17.12.2013, 21:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2013, 21:50
Помогаю со студенческими работами здесь

Работа с аргументами командной строки, не могу найти ошибку
Господа, пытаюсь написать программу, которая будет принимать 3 аргумента, в виде: ./progName...

Работа с аргументами в Call
Всем привет! Не так давно начал углубляться в тему командного языка окон и не могу найти правильное...

Работа с необязательными аргументами в C#
Всем привет! Появилась рабочая необходимость написать некий код на C#, до этого с этим языком не...

Работа с аргументами командной строки
Есть такой кусок старого кода на с++int help=1; char *file=0; char *File=0; char *blank=0;...

Работа с аргументами в функции main
Всем доброго времени суток. По заданию моего курсового проекта мне нужно вызвать Java программу из...

Работа с аргументами командной строки
Использую fpc в линуксе . Никак не получается разобраться как же правильно использовать paramcount...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru