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

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

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

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

17.12.2013, 19:41. Просмотров 730. Ответов 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;
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2013, 19:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с аргументами (C++):

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

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

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

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

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

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

21
Ronnie_
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
S_el
2113 / 1633 / 308
Регистрация: 15.12.2013
Сообщений: 6,576
17.12.2013, 21:13 #17
Посмотрите внимательно,вы пытаетесь дважды реализовать одну и ту же функцию.
0
Ronnie_
4 / 4 / 0
Регистрация: 10.10.2013
Сообщений: 91
17.12.2013, 21:15  [ТС] #18
где именно ошибка, помогите исправить, я уже ничего не догоняю
0
Progers
New to C++
83 / 44 / 5
Регистрация: 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
Ronnie_
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
Progers
New to C++
83 / 44 / 5
Регистрация: 14.01.2013
Сообщений: 258
17.12.2013, 21:54 #21
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
44
45
46
47
48
49
#include <iostream>
#include <string>
#include <windows.h>
using namespace std;
 
// прототипы
void func(string first, string second);
void func1(string second, string first);
 
int main()
{
    setlocale(LC_ALL,"Russian");
    string first, second;
 
    cout << "Введите первую строку: ";
    getline(cin, first);
    cout << "Введите вторую строку: ";
    getline(cin, second);
 
    func(first, second);
    func1(first,second);
 
    system("pause");
    return 0;
}
 
// функция сравнивает строки
void func(string first, string second)
{
    if (first == second)
    {
        cout << "Строки одинаковы" << endl;
    }
    else
    {
        cout << "Строки различны" << endl;
    }
}
 
void func1(string first, string second)
    {if(second == "")
{
    cout << "Длина строки одного аргумента: " << first.size() << endl;
}
    else
    {
    cout << "Аргумент не один: ";
}
}
1
outoftime
║XLR8║
511 / 433 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
18.12.2013, 06:41 #22
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <cstring>
 
int func(const char *s1, const char *s2 = NULL) {
    return s2 ? strcmp(s1, s2) : strlen(s1);
}
 
int main()
{
    const int n = 500;
    char s1[n] = {0}, s2[n] = {0};
    std::cin >> s1 >> s2;
    std::cout << func(s1, s2) << " " << func(s1);
   
    return EXIT_SUCCESS;
}
Ronnie_, Зачем делать лишние телодвижения?
0
18.12.2013, 06:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2013, 06:41
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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