вырезать кусок строки
Мне необходимо вырезать кусок строки.
К примеру есть строка:
char str[100] = "кусок текста дла теста";
Как вырезать к примеру первые 2 слова и вернуть оставшуюся часть?
зарание длагодарен
Добрый день.
Мне необходимо вырезать кусок строки.
К примеру есть строка:
char str[100] = "кусок текста дла теста";
Как вырезать к примеру первые 2 слова и вернуть оставшуюся часть?
зарание длагодарен
Работай с CString там все необходимые функции есть. А так пиши цикл на длину строки и копируй ее в другую вспомогательную строку.
Добрый день.
Мне необходимо вырезать кусок строки.
К примеру есть строка:
char str[100] = "кусок текста дла теста";
Как вырезать к примеру первые 2 слова и вернуть оставшуюся часть?
зарание длагодарен
Я бы например написал функцию (хотя наверное есть уже готовая)
char *str_cut(char *src, int cbegin,int cend)
{
char *ret = new char[strlen(src)- (cbegin - cend)];
int index = 0,
index1=0;
while(index < strlen(src))
{
if( !(index > cbegin && index < cend) )
{
ret[index1] = src[index];
index1++; index++;
}
else
index++;
}
return ret;
}
я её не дебужил, так что она глючная, нет множества проверок... так что сразу с размаху не пользоваться...
:)))
Добрый день.
Мне необходимо вырезать кусок строки.
К примеру есть строка:
char str[100] = "кусок текста дла теста";
Как вырезать к примеру первые 2 слова и вернуть оставшуюся часть?
зарание длагодарен
Конкретно для твоего примера будет выглядеть так:
int word_num=2;
char* str2 = str;
for(int i=0; i<word_num && (str2=strchr(str2, ' ')); i++, str2++);
Я бы например написал функцию (хотя наверное есть уже готовая)
char *str_cut(char *src, int cbegin,int cend)
{
char *ret = new char[strlen(src)- (cbegin - cend)];
int index = 0,
index1=0;
while(index < strlen(src))
{
if( !(index > cbegin && index < cend) )
{
ret[index1] = src[index];
index1++; index++;
}
else
index++;
}
return ret;
}
я её не дебужил, так что она глючная, нет множества проверок... так что сразу с размаху не пользоваться...
:)))
М-да... глючная, это точно.
Твою функцию можно написать значительно проще и сделать ее более быстрой:
{
int len = (strlen(src)>cend ? cend : strlen(src)) - cbegin;
char *ret = new char[len+1];
memcpy(ret, src+cbegin, len);
ret[len] = '\0';
return ret;
}
:))
.....................
и почему я так редко пользовался подобным.... :(