编一个程序,输入两个字符串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)是什么意思?

追答

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

追问

我知道了

谢谢

本回答被提问者采纳

程序设计,输入字符串str1和数字n,将字符串前n个字符前后顺序反转存储在...
编一个程序,输入两个字符串str1和str2,计算str2在str1中出现的位置,输出位置结果 str1 = raw_input()str2 = raw_input()if str2 in str1:print len(str1.split(str2)[0]) + 1

编一个程序,输入两个字符串str1和str2,计算str2在str1中出现的位置,输 ...
编一个程序,输入两个字符串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个索引位置的。

编写一个C程序,功能是:从键盘输入两个字符串str1 str2,并将字符串 str...
由于C的字符串是由字符数组操作的,所以这种题得保证字符数组str1能放得下它自身和拷贝在它后面的str2的内容。不用库函数的话可以如下操作:include "stdio.h"int main(int argc,char *argv[]){char str1[301],str2[101];int i,j;printf("Please enter 2 strings...\\n");scanf("%200s%...

输入两个字符串str1和str2,将str2连接到str1的后面,存入另一个字符数组...
1、首先打开pycharm编辑器。2、在文件里面写上注释。3、新建第一个字符串str1="my name"。4、新建第二个字符串str2="is feng"。5、将这两个字符串拼接起来组成新的字符串str3=str1+str2。6、将拼接的字符串打印出来。7、运行这个程序,得出结果。

请输入两个字符串str1和str2,将str1中出现在str2中的字符找出并输出,相 ...
include <stdio.h>#include <string.h>int main( ){ char a[200],b[200],c[127]= {0},*p,*q; printf("请输入二个字符串:\\n"); gets(a); gets(b); printf("%s中出现在%s中的字符有",a,b); for(q=a; *q; q++) if((p=strchr(b,*q))&&!c[*q]) \/\/...

C语言编程:有两个字符串st1,st2,编程找出st2是否在是st1中
可以使用C标准库吗?如果能的话,include<string.h> char *strp=NULL;strp=strstr(str1,str2);if(strp != NULL){ printf("%s 在 %s中\\n",str2,str1);}else{ printf("%s 不在 %s中\\n",str2,str1);}

键盘输入两个字符串,输两个字符串中对应字符相等的字
以下是Python的示例代码,实现输入两个字符串,输出这两个字符串中对应字符相等的字母:```python str1 = input("请输入第一个字符串:")str2 = input("请输入第二个字符串:")result = ""遍历两个字符串,找到相同位置的相同字符 for i in range(min(len(str1), len(str2))):if str1[...

用函数实现对两个字符串str1和str2的比较:strcmp (str1,str2)
这个函数是 字符串内字符自左向右逐个比较(按ASCII值大小相比较),直到出现不同的字符或遇'\\0'为止。当str1<str2时,返回值<0 当str1=str2时,返回值=0 当str1>str2时,返回值>0 程序如下:int strcmp(char * str1,char * str2){ int i=0,temp=0,ans=0;while((str1[i]!='\\0...

输入俩字符串str1str2,(str1长度小于str2),将str2前strlen(str1)替
main(){ char str1[100],str2[100];int i;gets(str1);gets(str2);for(i=0;;i++){ if(str1[i]==' ')str2[i]=str1[i];else if(str1[i]=='\\0')break;else str2[i]=str1[i];} printf("%s\\n",str2);return 0;}这是确定str1比str2小的,不然还得添加代码判断 ...

从键盘输入2个字符串,计算字符串str1中字符串str2出现的次数。
char *ptr = NULL;do{ char *ptr = strstr(p1, p2); if( ptr ){ sum ++; ptr++; }}while( ptr && *ptr != 0 )strstr的意思就是在p1里找p2并返回所有的结果,找到了就进if,并在里面对sum递增,并且到下一个直到全部遍历完 ...

相似回答