惊鸿夹雪 发表于 2013-11-26 22:21:15

求助,已知一组字符串,在这组字符串中找到一组自定义的子串,求方法

本帖最后由 惊鸿夹雪 于 2013-11-26 22:26 编辑

如题;
比如: char str[]={"abcd,efg\nhijkLMN,opqrst"};
用什么方法找到子串: "LMN" 并返回子串的开始位置,结束位置?

此处略缺三万 发表于 2013-11-27 05:00:09

#include <stdio.h>
int FindStr(char str[]);    //定义查找字串函数,找到则返回起始位置,否则返回-1
int main(int argc, char* argv[])
{
    int ret;
    char str[]={"abcd,efg\nhijkLMN,opqrst"};
    ret = FindStr(str);
    if(ret>=0)
    {
    printf("起始位置:%d",ret+1);
    printf("结束位置:%d",ret+4);
    }
    else
    {printf("未找到字串\"LMN\"") ; }
    getchar();
    return 0;
}

int FindStr(char str1[])
{
    int i=0;
   while(str1!='\0')
   {
       if((str1=='L')&&(str1=='M')&&(str1=='N'))
       {
       return i;
       }
       i++;
   }
   return -1;
}

惊鸿夹雪 发表于 2013-11-27 14:29:09

此处略缺三万 发表于 2013-11-27 05:00 static/image/common/back.gif
#include
int FindStr(char str[]);    //定义查找字串函数,找到则返回起始位置,否则返回-1
int main( ...

要是需要查找的字符串有十几个,那么判断就.....

惊鸿夹雪 发表于 2013-11-27 14:32:28

惊鸿夹雪 发表于 2013-11-27 14:29 static/image/common/back.gif
要是需要查找的字符串有十几个,那么判断就.....

比如将一个文件的内容写入到数组里, 然后在在这组巨大的字符串里找一组稍微巨大的字符串...
哥.你这方法不是很通用嘛

LatteBoy 发表于 2013-11-27 16:06:07

find函数就够了, 中间调用一下lenth函数,+find函数返回的index就可以得到结束位置。

此处略缺三万 发表于 2013-11-27 16:14:59

惊鸿夹雪 发表于 2013-11-27 14:29 static/image/common/back.gif
要是需要查找的字符串有十几个,那么判断就.....

既然是学习,为何不发挥你的想象自己修饰一番?

1988 发表于 2013-11-27 19:39:28

我用5楼的方法做了一下,是可以的,lz可以用find函数来查找字符串中的子字符串,返回值是size_type类型的子字符串第一个字符的索引值

下弦月之夜_夜末 发表于 2013-11-27 21:44:59

#include "stdio.h"

void shuchu(char str[])
{
        int i;
        for(i=0;i<26;i++)
        {
                if(str=='L')
                        printf("%c是第%d个\n",str,i+1);
                if(str=='M')
                        printf("%c是第%d个\n",str,i+1);
                if(str=='N')
                        printf("%c是第%d个\n",str,i+1);
        }
        return;
}
int main(void)
{
        char str[]={"abcd,efg\nhijkLMN,opqrst"};
        shuchu(str);
        return 0;
}

#include "stdio.h"

void shuchu(char str[])
{
        int i;
        for(i=0;i<26;i++)
        {
                if(str=='L')
                        printf("%c是第%d个\n",str,i+1);
                if(str=='M')
                        printf("%c是第%d个\n",str,i+1);
                if(str=='N')
                        printf("%c是第%d个\n",str,i+1);
        }
        return;

}
int main(void)
{
        char str[]={"abcd,efg\nhijkLMN,opqrst"};
        shuchu(str);
        return 0;
}
请看看
页: [1]
查看完整版本: 求助,已知一组字符串,在这组字符串中找到一组自定义的子串,求方法