编一个程序,输入两个字符串str1和str2,计算str2在str1中出现的位置,输出位置结果

如题所述

以python语言为例,示例代码如下

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# 编一个程序,输入两个字符串str1和str2,计算str2在str1中出现的位置,输出位置结果

str1 = raw_input()

str2 = raw_input()

if str2 in str1:

print len(str1.split(str2)[0]) + 1

运行程序,分别输入 strastrb,strb,则输出结果为5。表示strb是从strastrb的第5个索引位置的。

扩展资料

python raw_input() 函数介绍:

raw_input()用来获取控制台的输入,将所有输入作为字符串看待,返回字符串类型。注意:

input() 和 raw_input() 这两个函数均能接收 字符串 ,但 raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收)。而对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个语法错误。

实例:

>>>a = raw_input("input:")

input:123

>>> type(a)

<type 'str'>              # 字符串

>>> a = raw_input("input:")

input:runoob

>>> type(a)

<type 'str'>              # 字符串

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-07-10

1、【substring(string, start, length)】截取指定长度的字符。

2、【len(string)】函数介绍。

3、【substring(string, start, length)】截取掉首字符,返回其余字符换。

4、【substring(string, start, length)】截取掉最后一个字符,返回其余字符换。

5、【left(string, length)】截取左边开始个数的字符。

6、【right(string, length)】截取右边开始个数的字符。

7、【replace(str1, str2, str3)】替换字符串中指定字符。

本回答被网友采纳
第2个回答  2016-11-16
#include<stdio.h>
int instr(char *dst, char *src)
{
   int n = 0;
   char *pc1,*pc2,*pt;
   pc1=dst;
   if(!*src) return 0;
   while(*pc1)
   {
      pc2 = src; 
      while(*pc2 && (*pc2 != *pc1))
      {  n++; if(!*++pc1) return -1;}
      pt = pc1;
      while(*pc2 && *pc2 == *pc1)
      {  pc1++; pc2++;   }
      if( !*pc2 )
        return pt-dst;
      pc1 = pt +1;
   }
   return -1;
}
main()
{
   char str1[1000],str2[1000];
   int ind;
   while(scanf("%s %s",str1,str2)==2)
   {
      ind=instr(str1,str2);
      printf((ind==-1)?"Not Found\n":"Found at %d\n",ind);
   }
}

instr函数,未找到返回-1,找到返回找到的位置

第3个回答  2016-11-16
#include <stdio.h>
#include <string.h>
#define N 256

int findSubstring(char *s,char *t)
{
int i,j,len;
i=j=0;
len=strlen(t);
while(s[i] && t[j])
    {
        if(s[i] == t[j])
        {
            i++;
            j++;
        }
        else
        {
            j=0;
            i++;
        }
    }
    if(j == len)
        return i-len;
    else
        return 0;
}
int main()
{
char str1[N];
char str2[N];
int index;
printf("输入字符串str1: ");
scanf("%s",str1);
printf("输入字符串str2: ");
scanf("%s",str2);
index=findSubstring(str1,str2);
if(index == 0)
printf("字符串匹配失败!\n");
else
printf("字符串str2在str1中出现的位置为:%d",index);  //输出的是下标的位置
return 0;
}

示例运行结果:

输入字符串str1: abcdefghijk

输入字符串str2: defg

字符串str2在str1中出现的位置为:3    //刚好是str1的下标位置

输入字符串str1: abcdefghijk

输入字符串str2: defh

字符串匹配失败!

追问

strlen(t)是什么意思?

追答

求字符串的长度的库函数,在头文件中的。

追问

我知道了

谢谢

本回答被提问者采纳
相似回答