蒟蒻求助
查看原帖
蒟蒻求助
1104356
moorrunner楼主2023/10/21 19:37
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
void strlower(char*a){//定义一个函数将大写转化为小写 
	int i=0;
	for(i=0;a[i];i++){
		if(a[i]>'A' && a[i]<'Z'){
			a[i]+=32;
		}
	}
}
int main(void){
	char str2[1000001],str1[11],*p,*q;
	int i,j,cnt=0,ans1=-1;
	bool flag=false;
	gets(str1);//输入要查找的数 
	gets(str2);//输入句子 
	strlower(str1);//转化为小写 
	strlower(str2);
	p=str2;//p指向字符数组2的第一位 
	int len=strlen(str1);//记录输入字符的长度 
	for(;;){//一个单词一个单词的找,找不到时跳出 
		q=strstr(p,str1);
		if(q!=NULL && (q==str1||*(q-1)==' ') && (*(q+len)=='\0'||*(q+len)==' ')){//判断是否为这个单词而不是一个单词的一部分
			cnt++;//是的话就加一 
			if(flag==false){//判断是否找到 
				flag=true;
				ans1=q-str1;//第一次找到的位置 
			}
			p=q+len;//将p指向下一个单词
		} 
		else{
			break;
		}
	}
	if(flag==true){//输出 
		printf("%d %d",cnt,ans1);
	}
	else{
		printf("%d",ans1);
	}		
	return 0;
}

为什么我的q找不到地址

2023/10/21 19:37
加载中...