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