| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > функция strcat |
| Автор: Procoffeev 27.9.2008, 21:13 | ||
| Здравствуйте! вот есть функция:
собственно вопрос... strcat фыркает на bstr[i] c типом (char), так как второй параметр должен быть (const char *). Подскажите пожалуйста как обойти такую проблемку. Спасибо. |
| Автор: Alexeis 27.9.2008, 21:28 |
| strcat(bstr1, &bstr[i]); |
| Автор: Procoffeev 27.9.2008, 23:24 | ||||
| не прокатит =(( вот проверочный код с &bstr[i]:
выводит:
|
| Автор: 586 28.9.2008, 00:37 | ||
Тут надо с символами в строке работать а не со строкой - strcat здесь не нужен.
|
| Автор: Procoffeev 28.9.2008, 12:34 | ||
| все работает! Спасибо! только не могу понять запись: while(s >= src), это значит пока адрес s больше или равен адреса src? попробовал с другим условием:
программа зацикливается, и выдает всякую чушь |
| Автор: Annihilator 28.9.2008, 13:33 |
это и понятно. Ты устанавлиаешь указатель на нулевой элемент (условие равенства), а потом уменьшаешь в цикле (для наглядности, что-то типа s = -1;-2;-3...) выполняется условия "меньше" |
| Автор: Procoffeev 28.9.2008, 14:04 | ||
| нет. плохо что весь код не написал сразу, мысли тяжело читать вот код:
|
| Автор: vinter 28.9.2008, 15:26 | ||
это если у тебя символьная строка с завершающим нулем. Если нет, то надо передавать размер.. А вообще почему ф-ия называеться инверт? это же обычный strcpy |
| Автор: Procoffeev 28.9.2008, 15:41 | ||
| invert_code потому что она таковой и была с начала, но потом я задал другой вопрос: пост выше:
т.е. программа не останавливается на условии while(s <= src) , а лезет в чужое адресное пространство |
| Автор: 586 28.9.2008, 17:01 | ||
| Зацикливается потому, что в цикле не указано условие, где заканчивается строка. Си-шные строки заканчиваются нулевым символом. Коротко это записывается так:
|
| Автор: Procoffeev 28.9.2008, 21:18 |
| Спасибо за объяснение! Разобрался! |