Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Ввод и вывод из функци строки симфолов в C++  (Прочитано 852 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Macht59

  • Автор темы
  • Любитель
  • *
  • Сообщений: 57
    • Просмотр профиля
Нужно сделать что-то похожее на вот это:
#include <iostream.h>
#include <conio.h>
#include <string.h>

void assign (char  x,char & y)
{
  y=x;
}

void main ()

{
  clrscr();
  char y='b';
  char x='a';
  cout <<"\nbefore\nx="<<x<<" y="<<y;
  assign(x,y);
  cout<<"\nafter\nx="<<x<<" y="<<y;
  getch();
}
Но вводить в функцию нужно строку (например char  x[255],char y[255]) да еще так, что бы у не сбрасывалось после выполнения функции. По адресу передать, как показано в примере, не получается.
Подскажите, как можно обойти эту проблему.

P.S. Не смейтесь надо мной. Только учусь ведь.
P.P.S. Разработка происходит в Borland c++ builder, но тем не менее надеюсь Вы мне поможете. :-[
Ubuntu 10.10 | AMD Athlon II X3 3100+ | 4 Gb RAM | ATI 5770

Оффлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5583
  • Все по палатам!
    • Просмотр профиля
Может для начала книжки почитать? :-\
Извините, я все еще учусь

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
Если я правильно понял, то как-то так
#include <iostream>
#include <string.h>

void assign(char* x, char* y)
{
strcpy(y, x);
}

int main()
{
char x[6] = "Hello";
char y[6] = "World";
assign(x, y);
std::cout << y << '\n';
return 0;
}
Функция strcpy() копирует содержимое х в у.

Оффлайн Macht59

  • Автор темы
  • Любитель
  • *
  • Сообщений: 57
    • Просмотр профиля
Если я правильно понял, то как-то так
#include <iostream>
#include <string.h>

void assign(char* x, char* y)
{
strcpy(y, x);
}

int main()
{
char x[6] = "Hello";
char y[6] = "World";
assign(x, y);
std::cout << y << '\n';
return 0;
}
Функция strcpy() копирует содержимое х в у.

Очень большое спасибо!
Ubuntu 10.10 | AMD Athlon II X3 3100+ | 4 Gb RAM | ATI 5770

Оффлайн digiwhite

  • Активист
  • *
  • Сообщений: 732
  • http://www.welinux.ru
    • Просмотр профиля
    • http://www.welinux.ru
#include <iostream.h>
#include <string.h>

int assign(const char* src, char* dest, unsigned int size) {
    unsigned int src_size = 0;
    if (NULL == src) {
        return 0;
    }

    if (NULL == dest) {
        return 0;
    }

    src_size = strlen(src);

    if (src_size >= size) {
       src_size = size;
    }

    strncpy(dest, src, src_size);

    return 1;
}

Я бы вот так сделал.
Социальная сеть не фанатично настроенных линуксойдов - http://www.welinux.ru

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
я бы просто сделал strncpy() =)

Оффлайн Macht59

  • Автор темы
  • Любитель
  • *
  • Сообщений: 57
    • Просмотр профиля
я бы просто сделал strncpy() =)
Задание в том, чтобы создать класс, который мог бы служить некоторой заменой string.h.
Ubuntu 10.10 | AMD Athlon II X3 3100+ | 4 Gb RAM | ATI 5770

Оффлайн digiwhite

  • Активист
  • *
  • Сообщений: 732
  • http://www.welinux.ru
    • Просмотр профиля
    • http://www.welinux.ru
я бы просто сделал strncpy() =)

Да я бы тоже :) Но ТС видимо хочет как-то немнокжо извратиться :)
Социальная сеть не фанатично настроенных линуксойдов - http://www.welinux.ru

Оффлайн Macht59

  • Автор темы
  • Любитель
  • *
  • Сообщений: 57
    • Просмотр профиля
я бы просто сделал strncpy() =)
Да я бы тоже :) Но ТС видимо хочет как-то немнокжо извратиться :)
Что значит ТС?
Ubuntu 10.10 | AMD Athlon II X3 3100+ | 4 Gb RAM | ATI 5770

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
ТС == Топик стартер
В книге Пратта C., Язык программирования С++ Лекции и упражнения в одной из глав, в качестве примера разрабатывается подобие класса string

Оффлайн Macht59

  • Автор темы
  • Любитель
  • *
  • Сообщений: 57
    • Просмотр профиля
ТС == Топик стартер
В книге Пратта C., Язык программирования С++ Лекции и упражнения в одной из глав, в качестве примера разрабатывается подобие класса string
Спасибо за ценную информацию. Сейчас посмотрю.  :D
Ubuntu 10.10 | AMD Athlon II X3 3100+ | 4 Gb RAM | ATI 5770

 

Страница сгенерирована за 0.054 секунд. Запросов: 25.