gpt4 book ai didi

c - 获取文本中单词的初始位置

转载 作者:行者123 更新时间:2023-11-30 15:24:53 28 4
gpt4 key购买 nike

我需要获取文本中单词的位置,但无法将 char *text 的指针转换为 char text[] 来比较每个字符。

我正在尝试查找文本中与特定单词匹配的第一个子字符串的位置。

#include <stdio.h>
#include <string.h>
int searchWord(char *word, char *text);

int main (int argc, char *argv[])
{
int i,searchString;
if (!(argc>2)) {
printf("Need 2 args");
return 0;
}
printf("aaa %d\n" ,searchWord(argv[1],argv[2]));

return 0;
}

int searchWord(char *word, char *text) // I need use that function to search.
{
printf("\n\n%s\n\n",&word[0]);
return 0;
}

最佳答案

假设文本由空格分隔的单词组成,您可以考虑对文本进行标记,然后迭代标记以查看它们是否匹配单词.尝试使用 strtok(),网上有很多关于如何使用该函数的文档。

我在这里找到了一个关于如何使用strtok的相关问题:how to use strtok .

您可以尝试通过以下方式找到位置:

int search(char * word, char * text, unsigned int length) {
char * token = strtok(text, " ");
int position = 0;

while (token != NULL) {
// if word matches the token, we found our word
if (! strncmp(word, token, length)) {
return position;
} else {
position += (strlen(token) + 1);
// get the next token from the text
token = strtok(NULL, " ");
}
}
// didn't find it
return -1;
}

关于c - 获取文本中单词的初始位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28181903/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com