Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.08.2008, 08:38   #1
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,603
По умолчанию C проверка размера строки

Извините если вопросы кажутся глупыми. По форуму искал, но не нашел.
Как проверить в С, не пустая ли строка? Если какая-то функция получит пустую строку и попытается обратиться к нулевому элементу, программа получит краш. Хочу застраховаться от подобных неожиданностей.
Как известно, в С строка должна заканчиваться нулевым символом. Как выяснить, где заканчивается строка, если нулевого символа нет? Размер строки заранее не может быть известным.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 04.08.2008, 10:04   #2
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Посмотрите здесь http://www.rsdn.ru/article/cpp/cstr.xml#EOEAC
Gorychev вне форума Ответить с цитированием
Старый 04.08.2008, 12:50   #3
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,603
По умолчанию

Спасибо.

В учебных целях я изобретаю велосипед, класс строка.
Я создал следующий конструктор

Код:
string::string(char* str)
{
//BUG: 
	int i=0;
	while (str[i] != '\0')
		++i;
//
	size=i+1;
	text=new char[size];
	text[size-1]='\0';

	for (i=0;i<size;i++)
		text[i]=str[i];
}
Предположим написан следующий код:
Код:
char* k;
string st(k);
Если будет написан этот код, программа упадет. Указатель не был проинициализирован (намеренно для моделирования ситуации когда будет использован не инициализированный указатель). strlen тоже упадет. Как избежать этого?

Так же программа может упасть, если нет символа '\0' в конце строки.

Как обработать эти 2 ситуации?
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
Два размера фаила Иллидан Безопасность, Шифрование 1 09.03.2008 00:13
Проверка строки матрицы на симметричность. EVIL Помощь студентам 2 26.11.2007 23:23
Проверка размера файлов на стороне клиента (работа) AndreyAndrey Фриланс 5 02.11.2007 19:13
Получение размера mp3 файла Mickle Общие вопросы Delphi 1 05.04.2007 00:32