C语言字符串:查找子串首次出现的位置(下标)
输入字符串str、sub,查找sub在str首次出现的位置(下标)。例如str= " 123aba3abc", sub= “3ab ",sub在str中首次出现的下标为2,sub、 str长度 不超过50。
输入格式:
输入包括两行,依次是字符串str, sub.
输出格式:
sub在str中首次出现的位置(下标)。如果sub不在str中输出"NO"。
//方法一
#include<stdio.h>
#include<string.h>
int main(){
char a[100],b[100];gets(a);gets(b);
int c=0,t,i,f=0;
char *p=a,*q=b,*v=a;
for(;*p;p++){
if(*p==*b){
v=p;
for(q=b;*q;q++){
if(*p++==*q)c++;
}
if(c==strlen(b)){
f=1;printf("%d",v-a);break;
}
else p=p-c+1;
c=0;
}
}
if(f==0)printf("NO");
return 0;
}
//方法二(不完整)
#include <stdio.h>
#include <string.h>
int main()
{
char str[50],stu[50],*p=str,*q=stu;
int x=0,f=1,y=0;
scanf("%s",str);
scanf("%s",stu);
while (*p) {
f=1;
q=stu;
y=0;
if (*p==*q) {
while (*q) {
if (*p!=*q ) {
f=0;
break;
}
p++;q++;y++;
}
if (f==0) {
x+=1;
p=p-y+1;
continue;
}
if (f==1) break;
}
p++;x++;
}
printf("%d",x);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程