2015-06-30 3 views
6

Я следующий код, но он не работает:конкатенации двух строк не работает

CHARACTER*260 xx, yy, zz  
    xx = 'A' 
    yy = 'B' 
    zz = xx // yy 

Когда я отлаживать код в Visual Studio

  • переменная xx содержит «A '
  • переменная yy содержит 'B'
  • переменная zz содержит 'A'

Почему zz не содержит «AB»?

ответ

18

Вы определяете xx длиной до 260 символов. Назначение более короткого символьного литерала приведет к заполнению пробелами. Таким образом, xx содержит A и 259 заготовок. yy содержит B и 259 бланков. Таким образом, конкатенированная строка будет 'A' + 259 пробелов + 'B' + 259 пробелов, всего 520 символов.

С zz всего 260 символов, остальное обрезается.

То, что вы пытаетесь сделать, это достигается за счет

zz = trim(xx) // trim(yy) 

trim() удаляет конечные пробелы из строки.

+3

Отделка yy не нужна, но также не вызывает проблем. – Fortranner

Смежные вопросы