首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

,一个小函数的功能实现

2012-04-10 
求助 ,一个小函数的功能实现这里有a,c,abc,cde四个字符串,我想看看其中的任意一个是不是其他几个的前缀码。

求助 ,一个小函数的功能实现
这里有   a   ,c,abc,cde
四个字符串,我想看看其中的任意一个是不是其他几个的前缀码。怎么样用c语言来实现呢   ,谢谢大家。



[解决办法]
只看前缀的话,可以不用kmp等算法
char *p[4]={...................};
for(int i=0;i <4;i++)
for(int j=i+1;j <4;j++)
if(p[i]的前strlen(p[i])个字符==p[j]前strlen(p[i])个字符)
printf(“%s是%s的前缀”,p[i],p[j]);
[解决办法]
#include <stdio.h>

int main()
{
char *p[] = { "a ", "c ", "abc ", "cde "};
int i = 0;
int j = 0;
int len = 0;

len = sizeof(p)/sizeof(p[0]);
for (i = 0; i < len; i++)
{
for (j = 0; j < len; j++)
{
if(strstr(p[i], p[j]) == p[i])
{
printf( "%s %s\n ", p[i], p[j]);
}
}
}

return 0;
}

[解决办法]
ls的ls的代码有点小错误
#include <stdio.h>
#include <string.h>
int main()
{
char *p[] = { "a ", "c ", "abc ", "cde "};
int i = 0;
int j = 0;
int len = 0;

len = sizeof(p)/sizeof(p[0]);
for (i = 0; i < len; i++)
{
for (j = 0; j < len; j++)
{
if(strstr(p[i], p[j]) == p[i])//
{
printf( "%s is the former of %s\n ", p[j], p[i]);
}
}
}

return 0;
}
----------------------
gcc下运行成功

热点排行