Как удалить символ в массиве *сhar с использованием пользовательской функции?
Ну, раз char*
, а не string
...
char * delChar(char * s, char q)
{
for(char * c = s; *c; ++c)
{
while(*c == q)
memmove(c,c+1,strlen(c)+1);
if (*c == 0) break;
}
return s;
}
int main(int argc, const char * argv[])
{
char s[] = "Hello, Dolly!";
printf("%s\n",s);
printf("%s\n",delChar(s,'o'));
printf("%s\n",delChar(s,'!'));
}
Сойдет?
Если пугает memmove
, можо
char * delChar(char * s, char q)
{
for(char * c = s; *c; ++c)
{
while(*c == q)
{
char * q = c+1;
while(*(q-1) = *q) ++q;
}
if (*c == 0) break;
}
return s;
}
Можно и за один проход:
char * delChar(char * s, char q)
{
char * c = s, *t = s;
for(; *t; ++t)
{
if (*t != q) *c++ = *t;
}
*c = 0;
return s;
}
В C++ вы можете воспользоваться стандартным алгоритмом std::remove
.Например
#include <iostream>
#include <algorithm>
#include <cstring>
int main()
{
char s[] = "Hello World";
std::cout << s << std::endl;
char c = 'o';
*std::remove( s, s + std::strlen( s ), c ) = '\0';
std::cout << s << std::endl;
return 0;
}
Вывод программы на консоль
Hello World
Hell Wrld
В С, а также в C++ вы можете написать свою пользовательскую функцию. Ниже приведена программа на C, но сама функция может использоваться как в программе на C, так и в программе на C++.
#include <stdio.h>
char * remove_char( char *s, char c )
{
char *q = s;
while ( *q && *q != c ) ++q;
char *p = q;
while ( *q )
{
if ( *++q != c ) *p++ = *q;
}
return s;
}
int main(void)
{
char s[] = "Hello Wordl";
puts( s );
char c = 'o';
puts( remove_char( s, c ) );
return 0;
}
Вывод программы будет аналогичен, показанному выше, то есть
Hello Wordl
Hell Wrdl
Виртуальный выделенный сервер (VDS) становится отличным выбором
Добавление сайта в известные поисковые системы Google, Yandex, Bing, Yahoo, ...
День добрыйРеализовал рекурсивный двоичный поиск, но время от времени переполняется стек
Уже облазил всю документацию (либо почти всю), стоит такой вопрос - как изменять размеры ячеек, не отдельно взятой а всех в dataGridView программно,...
Всем доброго вечераСобираю проект email [клиента] (http://www