C语言查找字符串中某字符第几次出现的位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言查找字符串中某字符第几次出现的位置相关的知识,希望对你有一定的参考价值。

用C语言 给定字符串:this is java for you,java is good for programming!
打印最后一次出现字符串"for"的位置。
求完整代码

#include<stdio.h>
#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,arrayseparator 分割符  array 数组。

strpos() 函数查找字符串在另一字符串中第一次出现的位置。

语法:strpos(string,find,start);  find  字符串  string 另一字符串  start 第几次。

array_search() 函数在数组中搜索某个键值,并返回对应的键名。

array_search(value,array,strict)
如果第三个参数 strict 被指定为 true,则只有在数据类型和值都一致时才返回相应元素的键名。

 

以上是关于C语言查找字符串中某字符第几次出现的位置的主要内容,如果未能解决你的问题,请参考以下文章

如何用C语言查找一个字符串在word中第几页第几行出现?word中是如何确定一个字符在哪一页哪一行的?

python中怎么返回指定查找字符的位置

c语言中如何在一个字符串中查找/出现的位置?需要第一次出现和第二次出现中间的内容和第二次出现和第三

c++怎么提取字符串的一部分

函数整理

Oracle中的instr()函数