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

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

Войти
Регистрация
Восстановить пароль
 
tf2funny
Сообщений: n/a
#1

Возврат массива - C++

01.03.2013, 05:21. Просмотров 340. Ответов 4
Метки нет (Все метки)

Не спрашивайте зачем я это делаю, если можно просто использовать strcpy.
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
char tostrcpy(char *to, char *from);
 
int main(int i)
{
    setlocale(LC_ALL, "Russian");
    char str01[40], str02[40];
    int choise(0);
 
    cout << "Введите строку 01: ";
    gets(str01);
    cout << "Введите строку 02: ";
    gets(str02);
    cout << "Какую строку нужно скопировать?" << endl;
    cout << "  01 или 02  ";
    cout << "Выбор: ";
    cin >> choise;
        switch(choise)
        {
        case 01:
            cout << "Строка 02: " << tostrcpy(str02, str01);
            break;
        case 02:
            cout << "Строка 01:" << tostrcpy(str01, str02);
            break;
        }
 
    cout << "\n\n";
    system("PAUSE");
    return 0;
}
 
char tostrcpy(char *to, char *from)
{
        for(int i = 0; from[i]; i++)
        {
            to[i] = from[i];
        }
        return *to;
}
Функция tostrcpy возвращает только начало массива т.к. там стоит указатель(*), а без указателя пишет ошибку и не хочет компилировать.
C++
1
return to; // ошибка
Уже много чего перепробовал, что в голову приходило, но всё безуспешно.
Вопрос: Как из функции tostrcpy возвратить весь массив to, а не только первое значение?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2013, 05:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Возврат массива (C++):

Возврат массива из функции - C++
В объекте есть массив int state;, который мне нужно из него вытащить. Вижуал показывал ошибку, когда я пытался вернуть указатель state в...

Возврат массива из класса - C++
вот класс в котором есть массив а class Population1 { public: Population1(int,int); ~Population1(); int ProvLife(int,...

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

Возврат массива из функции - C++
Здравствуйте, Не пойму почему не работает данный код. Пишет cannot convert 'std::string*' to 'int*' in return По теории я жду...

Возврат массива из функции - C++
Есть задача: используя функции, вычислить количество элементов заранее введённых массивов, которые кратны Х, и переписать в отдельный...

Возврат массива из функции - C++
Программа должна переводить числа с 10 системы в двоичную... но почемуто выводит некорректно... Вот код... #include &lt;iostream&gt; using...

4
Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
01.03.2013, 06:35 #2
В заголовке и определении функции добавить звездочку после типа, т.е.
C++
1
char * tostrcpy(char *to, char *from)
И возвращать через return to;
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.03.2013, 06:57 #3
Цитата Сообщение от tf2funny Посмотреть сообщение
Как из функции tostrcpy возвратить весь массив to, а не только первое значение?
Массивы в функции не передаются по значнию. Передаётся указатель на начало массива, а сам массив остаётся на месте. Поэтому можно вообще ничего не возвращать.
0
tf2funny
Сообщений: n/a
01.03.2013, 07:13 #4
Спасибо, оба способа подошли.
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.03.2013, 07:15 #5
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>
using namespace std;
 
void tostrcpy(char *to, char *from);
 
int main(int i)
{
    setlocale(LC_ALL, "Russian");
    
    char str01[40], str02[40];
    
    int choise(0);
 
    cout << "Введите строку 01: ";
    gets(str01);
    cout << "Введите строку 02: ";
    gets(str02);
    cout << "Какую строку нужно скопировать?" << endl;
    cout << "  01 или 02  ";
    cout << "Выбор: ";
    cin >> choise;
        switch(choise)
        {
        case 1:
            tostrcpy(str02, str01);
            cout << "Строка 02: " << str02;
            break;
        case 2:
            tostrcpy(str01, str02);
            cout << "Строка 01:" << str01;
            break;
        }
 
    cout << "\n\n";
    system("PAUSE");
    return 0;
}
 
void tostrcpy(char *to, char *from)
{
        for(int i = 0; ; i++)
        {
            to[i] = from[i];
            if (!to[i]) break;
        }
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2013, 07:15
Привет! Вот еще темы с ответами:

Возврат адресов элементов массива - C++
Здравствуйте. Подскажите пожалуйста, почему массив srr выдает адреса, а массив crr какую-то белиберду... int main() { char crr =...

Возврат созданного в функции массива - C++
Верна ли следующая конструкция? void LoadArray(float* array, int &amp; count) { int fcount = 30;//данная цифра подсчитывается...

Возврат индексов двумерного массива - C++
Нужно получить индексы минимального элемента в матрице. Не понимаю, как передать индексы.Как-то через указатели? int min(int A,...

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


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
01.03.2013, 07:15
Ответ Создать тему
Опции темы

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