Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2013, 04:39   #1
dima1257
Пользователь
 
Аватар для dima1257
 
Регистрация: 16.11.2012
Сообщений: 66
По умолчанию конкатенация с++

Задание из книги. Задание: Что делает эта программа?
Программа присоединяет вторую строку к первой.

Код:
#include <iostream>
using std::cout;
using std::cin;
using std::endl;

void mystery1(char *, const char *);

int main()
{
    char string1[80];
    char string2[80];

    cout << "Введите две строки: ";
    cin >> string1 >> string2;
    mystery1(string1, string2);
    cout << string1 << endl;
    return 0;
}

void mystery1(char *s1, const char *s2)
{
    while (*s1 != '\0')
        ++s1;

    for( ; *s1 = *s2; s1++, s2++)
        cout << *s1 << "\t" << *s2 << endl;
}
Объясните пожалуйста как работает эта строчка
for( ; *s1 = *s2; s1++, s2++)
Почему она останавливается именно тогда когда надо? Как объяснить человеческим языком вот это условие? *s1 = *s2.
Выдержка из правил форума: Не стоит отправлять в поиск, не хотите отвечать пройдите мимо. Хотите помочь, пишите конкретный ответ.
dima1257 вне форума Ответить с цитированием
Старый 29.06.2013, 10:52   #2
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

operator= возвращает результат присваивания. Поэтому условие *s1 = *s2 считается истинным, пока *s2 != 0.
Smogg вне форума Ответить с цитированием
Старый 29.06.2013, 13:34   #3
dima1257
Пользователь
 
Аватар для dima1257
 
Регистрация: 16.11.2012
Сообщений: 66
По умолчанию

спасибо теперь всё понял. цикл останавливается т.к. *s2 устанавливается на NULL(или 0).
Выдержка из правил форума: Не стоит отправлять в поиск, не хотите отвечать пройдите мимо. Хотите помочь, пишите конкретный ответ.
dima1257 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
конкатенация Darlee БД в Delphi 2 20.04.2012 18:24
Конкатенация строк, столбцов Drugnir C/C++ Базы данных 3 17.08.2011 15:57
конкатенация LPSTR SNUPY Visual C++ 5 10.02.2011 17:23
конкатенация строк larry Win Api 3 26.07.2009 08:22