鱼C论坛

 找回密码
 立即注册
查看: 7166|回复: 13

[已解决]实现CE搜索字符串功能

[复制链接]
发表于 2019-2-14 18:39:23 | 显示全部楼层
跟查找字符串原理是一样的。只要知道要查找的内存地址,传入,然后对比即可。

如:
  1. #include <stdio.h>
  2. #include <string.h>

  3. char *FindRoleNameAddr(char *pData, char *pRoleName);

  4. char *FindRoleNameAddr(char *pData, char *pRoleName)
  5. {
  6.         char temp[sizeof(pRoleName)]={'\0'}; // 通过sizeof获取传入字符串的大小,定义个临时数组
  7.         char *cpData;
  8.         int i;

  9.         cpData = pData; // 先用cpData指向pData的首地址
  10.         while(1)
  11.         {

  12.                 for(i=0; i<(sizeof(pRoleName)-1); i++) // 获取字符串保存到temp数组中
  13.                 {
  14.                         temp[i] = *pData;
  15.                         pData++;
  16.                 }       


  17.                 if ( strcmp(temp, pRoleName)==0 ) // 对比获取到的字符串是否和目标字符串相等
  18.                 {
  19.                                 return cpData; // 相等返回字符串所在地址
  20.                 }

  21.                 pData = ++cpData; // 把pData指向下一个字符的地址。
  22.         }

  23. }

  24. int main()
  25. {
  26.         char *myStr = "abcdawewowfasdfsdf";
  27.         char *tStr = "wow";
  28.         char *pStr;

  29.         pStr = FindRoleNameAddr(myStr,tStr);

  30.         printf("找到:%s, 地址是:%p\n", pStr, pStr);

  31.         return 0;
  32. }

复制代码

评分

参与人数 1鱼币 +5 收起 理由
A小小鸟 + 5

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-15 18:55:41 | 显示全部楼层
A小小鸟 发表于 2019-2-15 17:59
非常的感谢你,你辛苦了,也想给你100鱼币表示感谢,但是却给不了,只能求助小甲鱼帮帮忙了

没关系,等你求回,确定是这样,再给也不迟;别浪费哥表情。要是给不起也没关系
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-15 22:19:36 | 显示全部楼层
A小小鸟 发表于 2019-2-15 19:44
不是的,系统的评分限制鱼币数量,我说到的话绝对做到的,毕竟你认认真真的给我帮忙,我怎么能随意的辜 ...

坐等消息
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-23 02:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表