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

Передать строку через функцию. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Sergey_O
 Аватар для Sergey_O
5 / 5 / 1
Регистрация: 09.12.2009
Сообщений: 65
09.05.2010, 11:55     Передать строку через функцию. #1
C++
1
2
3
4
5
6
7
8
9
#pragma once
class User
{
private:
    char *Surname;
public:
    User(void);
    char SurnameReturn();
}
C++
1
2
3
4
5
6
7
8
9
#include "User.h"
 
User::User(void)
{
}
 
char User::SurnameReturn(){
    return *Surname;
}
Проблема в том, что возвращается только 1 символ,а не вся строка. Как это лучше всего избежать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2010, 11:55     Передать строку через функцию.
Посмотрите здесь:

C++ В функцию-метод передать указатель на другую функцию-метод и вызвать через переданный указатель
Как передать в функцию строку и инициализировать ею структуру? C++
Массив: передать динамический массив в функцию и записать в каждый элемент строку из файла C++
C++ Как передать строку в функцию?
Нахождение основных значений оформить через функцию RESHENIE(), ввод данных и вывод на печать через функцию MAIN() C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
09.05.2010, 11:58     Передать строку через функцию. #2
Возможно я не прав, но Surname у вас объявлена как char, то есть символ, вот он и передает его.
Sergey_O
 Аватар для Sergey_O
5 / 5 / 1
Регистрация: 09.12.2009
Сообщений: 65
09.05.2010, 13:05  [ТС]     Передать строку через функцию. #3
Цитата Сообщение от neske Посмотреть сообщение
Возможно я не прав, но Surname у вас объявлена как char, то есть символ, вот он и передает его.
это динамический массив символов, внутри класса он выводит полную строку, а вот передаёт только 1 символ.

Добавлено через 1 час 0 минут
есть мысли у кого?
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
09.05.2010, 13:17     Передать строку через функцию. #4
C++
1
2
3
char* User::SurnameReturn(){
        return Surname;       //возвращаем адрес на начало строкового буфера.
}
Пример использования:
C++
1
2
3
4
5
6
int main(){
User obj;
char * ptr = obj.SurnameReturn();
//указатель ptr теперь можно использовать для работы со всей строкой.
return 0;
}
Sergey_O
 Аватар для Sergey_O
5 / 5 / 1
Регистрация: 09.12.2009
Сообщений: 65
09.05.2010, 18:56  [ТС]     Передать строку через функцию. #5
Спасибо, работает.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
09.05.2010, 18:59     Передать строку через функцию. #6
Лучше уж тогда определить оператор преоразования к char *.
Yandex
Объявления
09.05.2010, 18:59     Передать строку через функцию.
Ответ Создать тему
Опции темы

Текущее время: 11:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru