编一个程序,输入两个字符串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'> # 字符串
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,找到返回找到的位置
#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)是什么意思?
求字符串的长度的库函数,在头文件中的。