Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Работа со строками


Автор: maksar 8.2.2004, 05:18
Если в с++ функция позволяющая удалить из строки первые n-символов?

Автор: Stalk 8.2.2004, 09:27
На чем? Билдер или мсвс? Для первого не знаю, для второго: тебе понадобится класс CString. Если надо конвертировать char->CString то он это умеетbiggrin.gif
Код

char str1[]="строка";
CString str2=str1;//Никаких дополнительных функций! Может только возникнуть проблема с CString->char
int n=3;
str2=str2.Right(str2.GetLength()-n);//Берем справа длина-n символов, и получается что левые n уходят

Автор: __vi 9.2.2004, 19:38
Так напиши, что тут сложного.
Код

void str_rm_fst_n( char *s, unsigned int n )
{
   unsigned int i = 0;

   for( i = 0; s[n+i] != '\0'; i++ ) {
       s[i] = s[n+i];
   }

   s[i+1] = '\0';
}

Я не проверял как работает но идею ты понял.

Автор: __vi 9.2.2004, 19:40
Если у тебя динамическое аллокирование, то реаллокируй после этого.

Автор: maxim1000 9.2.2004, 19:51
используй "str+n" smile.gif

Автор: __vi 10.2.2004, 11:26
Да! Тоже вариант smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)