|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.11.2014, 10:11 | #1 |
Регистрация: 06.11.2014
Сообщений: 9
|
C - замена символов. В чем проблема?
Сделал функцию замены:
Код:
Код:
Вывод программы: Код:
Делаю под linux, компилятор gcc |
28.11.2014, 10:25 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,707
|
В том, что вы забываете про терминантный 0 в конце новой строки.
|
28.11.2014, 10:39 | #3 |
Регистрация: 06.11.2014
Сообщений: 9
|
Подскажите пожалуйста подробней. Или ткните в ссылку где про это можно прочитать.
|
28.11.2014, 11:45 | #4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,707
|
В любой книжке по С.
В С строки обычно 0-терминантные, т.е. строка "АААА", на самом деле хранится как "АААА\0". strlen возвращает длину строки без учета терминантного 0. И когда вы пишите Код:
Есть и другой эффект, если \0 в конце не нашелся, то некоторые функции пойдут дальше по памяти до \0 или пока не наткнутся на исключение. |
28.11.2014, 12:29 | #5 |
Регистрация: 06.11.2014
Сообщений: 9
|
Спасибо, разобрался
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Замена символов | Alexandr- | Помощь студентам | 1 | 09.04.2013 15:36 |
замена символов | nub' | Общие вопросы по Java, Java SE, Kotlin | 0 | 09.03.2012 13:01 |
замена символов | sveta11115 | Общие вопросы C/C++ | 11 | 21.03.2010 10:56 |
c++ замена символов | sveta11115 | Помощь студентам | 0 | 21.03.2010 00:09 |
Замена символов | PAVEL315 | Общие вопросы Delphi | 1 | 03.02.2007 21:56 |