7-6 查找子串 (20分)

7-6 查找子串 (20分)

本题要求实现一个字符串查找的简单函数。
函数接口定义:
char *search( char *s, char *t );

函数search在字符串s中查找子串t,返回子串t在s中的首地址。若未找到,则返回NULL。
裁判测试程序样例:
#include <stdio.h>
#define MAXS 30

char *search(char *s, char t);
void ReadString( char s[] ); /
裁判提供,细节不表 */

int main()
{
char s[MAXS], t[MAXS], *pos;

ReadString(s);
ReadString(t);
pos = search(s, t);
if ( pos != NULL )
    printf("%d\n", pos - s);
else
    printf("-1\n");

return 0;

}

/* 你的代码将被嵌在这里 */

输入样例1:
The C Programming Language
ram

输出样例1:
10

输入样例2:
The C Programming Language
bored
输出样例2:
-1

作者: 张泳单位: 浙江大学城市学院时间限制: 400 ms内存限制: 64 MB代码长度限制: 16 KB题目详情编译器 (1)C (gcc)
char *search( char *s, char *t ){
char p[30];
int i=0,lent,lens,j=0,q=0;
lent = strlen(t);
lens = strlen(s);
if(lens<lent) return NULL;
for(j=0; j<=lens-lent; j++){
for(i=j,q=0; i<lent+j; i++,q++) p[q] = s[i];
p[q] = ‘\0’;
if(strcmp(p,t)0) return &s[j];
}
if(j
lens-lent+1) return NULL;
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 创建名为str1的字符串对象”Life is short, you need Python.” ```python str1 = "Life is short, you need Python." ``` 2. 利用字符串索引或切片别读取(输出)字符串str1中的’Python’子串、’Life’子串 ```python print(str1[16:22]) # 输出Python print(str1[:4]) # 输出Life ``` 3. 别使用index或find方法查找子串’short’的索引位置、查找子串’you’在[16,19]索引范围内的首次出现的位置(索引) ```python print(str1.index("short")) # 输出8 print(str1.find("you", 16, 19)) # 输出-1,因为在该索引范围内没有找到you子串 ``` 4. 通过字符串切片获取str1的子串”you need Python”,将其赋给新的字符串str2; ```python str2 = str1[12:] print(str2) # 输出you need Python. ``` 5. 利用lower、upper、切片等方法别输出字符串str2的大写形式、小写形式和”You need PYTHON” 形式; ```python print(str2.upper()) # 输出YOU NEED PYTHON. print(str2.lower()) # 输出you need python. print("You " + str2[4:].upper()) # 输出You NEED PYTHON. ``` 6. 通过split方法对字符串str1别按照空字符串和逗号进行割,并求相应的割后元素个数; ```python lst1 = str1.split() lst2 = str1.split(",") print(len(lst1)) # 输出5,因为割后得到5个元素 print(len(lst2)) # 输出2,因为割后得到2个元素 ``` 7. 通过range函数创建1-20之间的所有偶数对应的数字字符串构成的列表num1,并通过print输出所有数字字符串元素; ```python num1 = [str(i) for i in range(2, 21, 2)] print(num1) # 输出['2', '4', '6', '8', '10', '12', '14', '16', '18', '20'] ``` 8. 将num1中所有字符元素通过“-”连接成一个字符串str3,并计算字符串str3中”-”出现的次数。 ```python str3 = "-".join(num1) print(str3) # 输出2-4-6-8-10-12-14-16-18-20 print(str3.count("-")) # 输出9,因为-出现了9次 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值