05.09.2016 Views

Стефан Р. - С++ Для чайников

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

! f _cSfc/*№it*le<br />

E File Edit<br />

t<br />

1<br />

SearchRun<br />

COM<br />

ilfi<br />

JiJe<br />

I)<br />

*buQProiectOotionsWindowsHelt<br />

-h:/sss.cpp — ——<br />

_jni_xj<br />

15H/14H<br />

// none<br />

" h i l J<br />

ш<br />

V<br />

ОДИ11ЯС1 ОТ<br />

xpr6ssion<br />

esult<br />

ew<br />

value<br />

Ц<br />

cir<br />

в<br />

1<br />

К коицч tieoDOrt<br />

I Ш<br />

Hi<br />

I szTarget:<br />

Ш<br />

iJB<br />

BBS<br />

Bflft<br />

1<br />

1<br />

1 Ш<br />

•<br />

<strong>Р</strong>ис. 11.8. Даже после инициализации переменных результат соединения<br />

строк оказывается неверным<br />

Дописывание символов после символа окончания строки (нулевого символа)<br />

или отсутствие символа окончания строки — две самых распространенных<br />

ошибки при работе со строками.<br />

Теперь, когда известно, где находятся обе ошибки, было бы неплохо исправить их в исходной<br />

программе (пока мы не забыли, где они находятся). Вызовите команду Program<br />

Reset и исправьте функцию concatstring так, как показано в следующем листинге:<br />

void corcatString(char szTarget[], char szSource[])<br />

{<br />

int nTargetIndex = 0;<br />

int nSourcelndex = 0 ;<br />

// кайдем конец первой строки<br />

while (szTarget [+ J -nTargetIr.dex] )<br />

// присоединяем вторую строку к концу первой<br />

whij e(szSource[nSourcelndex])<br />

{<br />

szTarget{nTargetlndex; =<br />

szSource[nSourcelndex];<br />

nTargetIndexi-+;<br />

r.SourceIndex + + ;<br />

)<br />

// завершаем конечную строку<br />

szTarget[nTargetlndex] = '\G';<br />

To, чго было найдено несколько ошибок, еше не значит, что в программе нет<br />

других "жучков". Необходимо довести процесс отладки до конца. Установите просмотр<br />

переменных r.Targetlndex и r.Sourcelndex и самостоятельно проверьте их<br />

содержимое во время выполнения следующего цикла.<br />

Глава 11. Отладка программ на C++ 131

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!