C语言查找字符串中某字符第几次出现的位置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言查找字符串中某字符第几次出现的位置相关的知识,希望对你有一定的参考价值。
用C语言 给定字符串:this is java for you,java is good for programming!
打印最后一次出现字符串"for"的位置。
求完整代码
#include<string.h>
int main()
char s[1024];
gets(s);
int len = strlen(s), i, index = -1;
for(i = 0; i < len - 3; i++)
if(s[i] == 'f' && s[i + 1] == 'o' && s[i + 2] == 'r')
index = i;
printf("%d\\n", index);
return 0;
参考技术A #include <iostream>
#include<cstring>
using namespace std;
int main()
string a="this is java for you,java is good for programming!";
int len=a.length();
for(int i=len-1;i>=0;i--)
if(a[i]=='r'&&a[i-1]=='o'&&a[i-2]=='f')
cout<<i-2<<" "<<i-1<<" "<<i<<endl;
break;
return 0;
参考技术B #include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<malloc.h>
int main()
int n,i,j,b[51]=0;
char a[]="this is java for you,java is good for programming!";
n=strlen(a);
for(i=0;i<n;i++)
if(a[i]=='f'&&a[i+1]=='o'&&a[i+2]=='r')
b[i]=1;
for(i=0;i<51;i++)
if(b[i]==1)
j=i;
printf("%d",j);
参考技术C #include<stdio.h>
#include<string.h>
main()
int i,index = -1;
char s[] = "this is java for you,java is good for programming!";
char* cp = s;
for(i = 0;i < strlen(s) - 2;i++)
if(*(cp + i) == 'f' && *(cp + i + 1) == 'o' && *(cp + i + 2) == 'r' && i > index)index = i;
if(index != -1)printf("最后一次出现字符串'for'的位置为%d\n",index);
else printf("没有找到字符串'for'");
追问
谢谢你的回答,你能把for后面的字符串打印出来么?
追答if(index != -1)
printf("最后一次出现字符串'for'的位置为%d\n其后的字符串为",index);
puts(cp + index + 3);
我理解理解,谢谢
本回答被提问者采纳函数整理
implode() 函数返回由数组元素组合成的字符串。
语法:implode(separator,array) separator 分割符 array 数组。
strpos() 函数查找字符串在另一字符串中第一次出现的位置。
语法:strpos(string,find,start); find 字符串 string 另一字符串 start 第几次。
array_search() 函数在数组中搜索某个键值,并返回对应的键名。
array_search(value,array,strict)
如果第三个参数 strict 被指定为 true,则只有在数据类型和值都一致时才返回相应元素的键名。
以上是关于C语言查找字符串中某字符第几次出现的位置的主要内容,如果未能解决你的问题,请参考以下文章
如何用C语言查找一个字符串在word中第几页第几行出现?word中是如何确定一个字符在哪一页哪一行的?