Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как удалить символ из строки ?

359
31 марта 2004 года
Lazy_Man
47 / / 28.03.2004
Как удалить символ с номером n из строки char *s?
5.8K
31 марта 2004 года
Digi
15 / / 25.03.2004
Цитата:
Originally posted by Lazy_Man
Как удалить символ с номером n из строки char *s?



Код:
char szString[] = "1234567890";
char szResult[11];
int nDel = 5;
int nCounter = 0;
int nCounter2 = 0;

while (nCounter <= strlen(szString))
{
     if (nCounter != nDel)
     {
          szResult[nCounter2] = szString[nCounter];
          nCounter++;
          nCounter2++;          
     }    
     else
     {
          nCounter++;
     }
}


szString - строка из которой удаляем сивол
szResult - строка куда запишем результат
nDel - номер удаляемого символа (равен 5)
nCounter, nCounter2 - счечики

При таком расладе до выполнения программы строка имеет вид:
"1234567890"
После:
"123457890"
5.8K
31 марта 2004 года
Digi
15 / / 25.03.2004
Вот еще тоже смамое, но уже с char *:

Код:
char *s;
    s = new char[11];
    strcpy(s, "1234567890");

    char szResult[11];
    int nDel = 5;
    int nCounter = 0;
    int nCounter2 = 0;

    while (nCounter <= strlen(s))
    {
         if (nCounter != nDel)
        {
            szResult[nCounter2] = *(s+nCounter);
            nCounter++;
            nCounter2++;          
        }    
        else
        {
            nCounter++;
        }
    }

    delete[] s;
3
31 марта 2004 года
Green
4.8K / / 20.01.2000
Для Digi:
Зачем так сложно? :D
Цикл то тебе зачем?

 
Код:
char* func(char* str, size_t n)
{
  int len = strlen(str)-n;
  if(len>0)
    memmove(str+n, str+n+1, len);
 
  return str;
}
5.8K
31 марта 2004 года
Digi
15 / / 25.03.2004
Цитата:
Originally posted by Green
Для Digi:
Зачем так сложно? :D
Цикл то тебе зачем?

 
Код:
char* func(char* str, size_t n)
{
  int len = strlen(str)-n;
  if(len>0)
    memmove(str+n, str+n+1, len);
 
  return str;
}



Спасибочки, :). Буду теперь знать более короткий способ. :)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог