codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <stdio.h> #include <stdlib.h> char *sub; char * substr(const char * text, int beg, int end) { int i; if(sub) free((void *)sub); sub = 0; int len = end - beg; if(text)//Ïðîâåðÿåì íå ïóñòîé ëè ââîä if(text + beg)//Ïðîâåðÿåì ñóùåñòâîâàíèå â òåêñòå ïîçèöèè beg if(0 < len)//Ïðîâåðÿåì êîððåêòíîñòü ïàðàìåòðîâ êîíåö äîëæåí áûòü áîëüøå íà÷àëà if((sub = (char *)malloc(1 + len)))//Åñëè end ïðåâîñõîäèò ïîñëåäíþþ //ïîçèöèþ òåêñòà íè÷åãî ñòðàøíîãî âûäåëèì ÷óòü áîëüøå ïàìÿòè ÷åì íàäî { //Ïðèìèòèâíîå êîìïèðîâàíèå, äàæå òåêñòîâûõ áèáëèîòåê íå íàäî áóäåò for(i = beg; text[i] != '\0' && i < end; i++) sub[i - beg] = text[i]; sub[i - beg] = '\0';//Íîëü òåðìèíàòîð âêîíöå ñòðîêè } return sub; } int main() { static char text[] = "abra kadabra"; printf("input : %s\n",text); //Ê ïðìåðó ïóñòü áóäåò ïîäñòðîêà ñ 5-ãî ïî 15-é ñèìâîë //êñòàòè â text ìåíüøå ÷åì 15 ñèìâîëîâ íó âîò çàîäíî è ïðîâåðèì //êîððåêòíîñòü ðàáîòû substr printf("output: "); char * sub = substr(text, 5 , 11); if(sub) printf("%s\n",sub); else printf("Error substr\n"); sub = substr(text, 7 , 9); if(sub) printf("%s\n",sub); else printf("Error substr\n"); getchar(); return 0; }
Private
[
?
]
Run code
Submit