1、编写函数,返回角色名字信息的地址,如果没有返回0 char* FindRoleNameAddr(char* pData,char* pRoleName) 2、编写函数,遍历上面数据中所有角色名字.
时间: 2024-04-30 20:25:12 浏览: 40
剑指offer面试题1-10
1. 下面是 FindRoleNameAddr 函数的代码实现:
```c
char* FindRoleNameAddr(char* pData, char* pRoleName) {
char* p = pData;
while (*p != '\0') {
if (strcmp(p, pRoleName) == 0) {
return p;
}
p += strlen(p) + 1;
}
return 0;
}
```
这个函数接受两个参数:pData 是一个字符串,其中包含了多个角色名字信息,每个名字以 '\0' 结尾;pRoleName 则是要查找的角色名字。如果找到了该名字,则返回它在字符串中的地址;否则返回 0。
函数的实现方法是用一个指针 p 来遍历整个字符串,每次检查 p 所指向的子串是否与 pRoleName 相等。如果相等,则返回 p 的地址;否则将 p 移动到下一个子串的开头继续查找。
2. 下面是遍历角色名字的函数代码:
```c
void TraverseRoleNames(char* pData, void (*pFunc)(char*)) {
char* p = pData;
while (*p != '\0') {
pFunc(p);
p += strlen(p) + 1;
}
}
```
这个函数接受两个参数:pData 和 pFunc。pData 是一个字符串,其中包含了多个角色名字信息,每个名字以 '\0' 结尾;pFunc 是一个函数指针,指向一个函数,用于处理每个角色名字。
函数的实现方法是用一个指针 p 来遍历整个字符串,每次调用 pFunc 处理 p 所指向的子串。处理完后将 p 移动到下一个子串的开头继续遍历。这里的 pFunc 参数是一个函数指针,可以指向任何一个具有 char* 参数的函数。
阅读全文