李泽然---路在自己脚下!***只有当潮水退去的时候,才知道谁在裸泳***

C++博客 联系 聚合 管理
  7 Posts :: 0 Stories :: 5 Comments :: 0 Trackbacks

#include <stdio.h>
int strlen2(char *str)
{
    for(i=0; str[i]!='\0'; i++) //使用循环来计算长度
    return i;
}

//在字符串中寻找子字符

int strindex(char *str,char *substr)
{
    int end,i,j;
    end = strlen2(str)-strlen2(substr);
    if (end>0)
    {
        for(i=0;i<=end;i++)
            /*使用循环比较*/
            for(j=i; str[j]==substr[j-i];j++)
                if (substr[j-i+1]=='\0')
                    return i+1;
   }
    return -1;  
}

//主程式:在字符串中寻找子字符串出现的位置

void main()
{
    char string[100];
    char substring[100];
    int result;
    printf("请输入字符串");
    gets(string);
    printf("请输入要搜索的子字符串");
    gets(substring);
    result = strindex(string,substring);
    if (result > 0)
        printf("子字符串位置在%d",result);
    else
        printf("没有找到");
    getchar();
}

posted on 2008-12-13 11:10 lzr 阅读(2071) 评论(4)  编辑 收藏 引用 所属分类: C/C++

Feedback

# re: 字符串中查找字符串的算法 2008-12-13 14:04 远风
for(i=0; str[i]!='\0'; i++) //使用循环来计算长度

这个写错了,应该是:
int i;
for(i=0; str[i]!='\0'; i++);
  回复  更多评论
  

# re: 字符串中查找字符串的算法 2008-12-13 14:14 lzr
@远风
谢谢远风!的确是错了,本来想写成for(int i=0,.....)形式了,忘掉了!  回复  更多评论
  

# re: 字符串中查找字符串的算法 2008-12-13 14:29 CK
这个算法效率不高。
推荐博主去百度一下,学学一种叫做KMP的字符串匹配算法。
这里就不阐述了,看不懂的话可以问我。  回复  更多评论
  

# re: 字符串中查找字符串的算法 2008-12-15 09:40 zuhd
我以为是KMP  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理