Talk:Rep-string: Difference between revisions
Content added Content deleted
m (→Clarification: Whoops!) |
(→c program: new section) |
||
Line 56: | Line 56: | ||
==Curiouser and curiouser!== |
==Curiouser and curiouser!== |
||
Ledrugs' Python <tt>text.startswith(shifted_text)</tt> is equivalent to TimToadys' Perl 6 boolean shift and XOR. I'll remember that! --[[User:Paddy3118|Paddy3118]] ([[User talk:Paddy3118|talk]]) 19:41, 13 May 2013 (UTC) |
Ledrugs' Python <tt>text.startswith(shifted_text)</tt> is equivalent to TimToadys' Perl 6 boolean shift and XOR. I'll remember that! --[[User:Paddy3118|Paddy3118]] ([[User talk:Paddy3118|talk]]) 19:41, 13 May 2013 (UTC) |
||
== c program == |
|||
Hi, |
|||
C program works great. I have add new example and it failed ( or I'm wrong). The result IMHO should be rep-string "001" |
|||
<lang c> |
|||
/* |
|||
https://rosettacode.org/wiki/Rep-string#C |
|||
*/ |
|||
#include <stdio.h> |
|||
#include <string.h> |
|||
int repstr(char *str) |
|||
{ |
|||
if (!str) return 0; |
|||
size_t sl = strlen(str) / 2; |
|||
while (sl > 0) { |
|||
if (strstr(str, str + sl) == str) |
|||
return sl; |
|||
--sl; |
|||
} |
|||
return 0; |
|||
} |
|||
int main(void) |
|||
{ |
|||
// input strings = tests |
|||
char *strs[] = { |
|||
"1001110011", |
|||
"1110111011", |
|||
"0010010010", |
|||
"1111111111", |
|||
"0100101101", |
|||
"0100100", |
|||
"101", |
|||
"11", |
|||
"00", |
|||
"00100100100100100100100100100100100100100100100100100100100100100100100100100" }; // not works |
|||
size_t strslen = sizeof(strs) / sizeof(strs[0]); // number of test values |
|||
size_t i; |
|||
for (i = 0; i < strslen; ++i) { // check all test values |
|||
int n = repstr(strs[i]); |
|||
// print result |
|||
if (n) |
|||
printf("\"%s\" = rep-string \"%.*s\"\n", strs[i], n, strs[i]); |
|||
else printf("\"%s\" = not a rep-string\n", strs[i]); |
|||
} // |
|||
return 0; |
|||
} |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
"1001110011" = rep-string "10011" |
|||
"1110111011" = rep-string "1110" |
|||
"0010010010" = rep-string "001" |
|||
"1111111111" = rep-string "11111" |
|||
"0100101101" = not a rep-string |
|||
"0100100" = rep-string "010" |
|||
"101" = not a rep-string |
|||
"11" = rep-string "1" |
|||
"00" = rep-string "0" |
|||
"00100100100100100100100100100100100100100100100100100100100100100100100100100" = rep-string "001001001001001001001001001001001001" |
|||
</pre> |