Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
PPCG partial solution to https://codegolf.stackexchange.com/q/120870/61563
/* THIS SYSTEM DOES NOT IMPLEMENT STRRSTR */ char * strrstr(char *string, char *find) { int stringlen, findlen; char *cp; findlen = strlen(find); stringlen = strlen(string); if (findlen > stringlen) return (char*)0; for (cp = string + stringlen - findlen; cp >= string; cp--) if (strncmp(cp, find, findlen) == 0) return cp; return (char*)0; } char*s,*r,*p; #define f(h,n) \ s=strrstr(h,n);s&&((s-h)==0||(s-h)+strlen(n)==strlen(h))?printf("%.*s",(s-h),h),puts(s+strlen(n)):puts(h) int main(void) { /* VALID */ f("abcde","ab"); // -> 'cde' f("abcde","cde"); // -> 'ab' f("abab","ab"); // -> 'ab' f("abcab","ab"); // -> 'abc' or 'cab' f("ababcde","ab"); // -> 'abcde' f("acdbcd","cd"); // -> 'acdb' f("abcde","abcde");// -> '' f("abcde",""); // -> 'abcde' f("",""); // -> '' /* INVALID */ f("abcde","ae"); // -> 'abcde' f("abcde","aa"); // -> 'abcde' f("abcde","bcd"); // -> 'abcde' f("abcde","xab"); // -> 'abcde' f("abcde","yde"); // -> 'abcde' }
run
|
edit
|
history
|
help
0
Good
20171117_TARTAGLIA
Sizeof void
C Array Demonstration
Command Expressions in Gnu C: What Does Return Return?
2.3 Comparision with Matrix Multiplication Execution Time
Operation of two numbers
709 lab 3.1
Why &(a+1) is not allowed
CALCULADORA