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

1468165364 2013-12-14 09:34:48
给定字符串:this is java for you,java is good for programming!
打印最后一次出现字符串"for"的位置。
求完整代码
...全文
1995 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2013-12-16
  • 打赏
  • 举报
回复
//给定字符串:this is java for you,java is good for programming!
//打印最后一次出现字符串"for"的位置。
#include <stdio.h>
#include <string.h>
char s[]="this is java for you,java is good for programming!";
char f[]="for";
char *p,*q;
int main() {
    p=strstr(s,f);
    if (NULL==p) {
        printf("Can not find '%s' in '%s'!\n",f,s);
    } else {
        q=p+strlen(f);
        while (1) {
            p=strstr(q,f);
            if (NULL==p) break;
            q=p+strlen(f);
        }
        printf("The last location from 0 of '%s' in '%s' is %d.\n",f,s,q-s-strlen(f));
    }
    return 0;
}
//The last location from 0 of 'for' in 'this is java for you,java is good for programming!' is 34.
//
1468165364 2013-12-16
  • 打赏
  • 举报
回复
问题已经解决了,不过还是很感谢你,而且您的这种方法对我也有启发。
threenewbee 2013-12-14
  • 打赏
  • 举报
回复
对要查找的字符串反序,然后将标准的从前向后搜索子串的算法(比如KMP)改为从后向前,搜索反序后的那个字符串,即可。
图灵狗 2013-12-14
  • 打赏
  • 举报
回复
参考http://see.xidian.edu.cn/cpp/html/174.html
引用 楼主 u013155036 的回复:
给定字符串:this is java for you,java is good for programming! 打印最后一次出现字符串"for"的位置。 求完整代码
昵称很不好取 2013-12-14
  • 打赏
  • 举报
回复
有个函数叫strstr

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧