strncpy(strSub, strSource+posStart, posEnd-posStart+1);
strSub[posEnd-posStart+1] = '\0';
Как вырезать подстроку из строки с ... по ... позиции?
Напрмер "строка привет как вырезать строку" - надо плолучить с 5 по 10 - "а при" . Или до конца строки с какой либо позиции?
bool write_substr(const char *szstr, char *szsub, int st, int en)
{
if(st>=en || en>strlen(szstr)-1)
return false;
int i,j;
for(i=st,j=0;i<=en;i++,j++)
szsub[j]=szstr;
szsub[j]='\0';
return true;
}
//Юзаем
int main()
{
char szsub[64];
if(write_substr("Hello, Ritchie",szsub,4,7))
printf("%s\n",szsub);
else
fprintf(stderr,"oops... something is wrong with write_substr args\n");
return 0;
}
пример :
#include <iostream>
using namespace std;
typedef std::string Str
void main(){
Str mystring("string");
mystring.substr(...)
}
контекстная справка в VC++6 тебе поможет
Материалы об STL ищи или здесь на сервере или в любом поисковике(я просто набрал stl - и потратил минут десять на то чтобы выбрать нужное)
да, это тоже вариант
neutrino4 неужели так нравиться каждый раз писать циклы?
Другой вариант:
Вырезаем с posStart до posEnd (включительно):
Код:
Вырезаем с posStart до конца строки:
Код:
strcpy(strSub, strSource+posStart);