📜  在文本空间中查找关键字 (1)

📅  最后修改于: 2023-12-03 14:51:28.202000             🧑  作者: Mango

在文本空间中查找关键字

在编程中,查找关键字在文本空间中是非常常见的操作。这个过程需要用到一些字符串的基本操作函数,例如匹配、查找、比较等函数。下面将介绍一些常用的函数,以及如何进行关键字的查找。

字符串操作函数

在查找关键字之前,我们需要了解一些常用的字符串操作函数,具体如下:

strlen()

该函数用于计算字符串的长度。

int strlen(const char *str);

示例:

char str[] = "Hello, world!";
int len = strlen(str);
printf("字符串的长度为:%d\n", len);
strstr()

该函数用于在一串字符串中查找另一串字符串的位置。

char *strstr(const char *haystack, const char *needle);

示例:

char str[] = "Hello, world!";
char key[] = "world";
char *p = strstr(str, key);
if (p != NULL) {
    printf("关键字的位置为:%d\n", p - str);
}
strcmp()

该函数用于比较两个字符串是否相等。

int strcmp(const char *s1, const char *s2);

示例:

char str[] = "Hello, world!";
char key[] = "hello";
int ret = strcmp(str, key);
if (ret == 0) {
    printf("两个字符串相等\n");
} else {
    printf("两个字符串不相等\n");
}
关键字查找

在了解了以上字符串操作函数之后,我们可以开始进行关键字的查找。具体步骤如下:

  1. 读入文本;
  2. 读入关键字;
  3. 在文本空间中查找关键字;
  4. 统计关键字的数量;
  5. 输出结果。

代码示例:

#include <stdio.h>
#include <string.h>

int main() {
    char text[1000];  // 文本
    char key[100];    // 关键字
    int count = 0;    // 关键字数量
    int pos;          // 关键字位置

    printf("请输入文本:");
    fgets(text, 1000, stdin);
    printf("请输入关键字:");
    scanf("%s", key);

    pos = 0;
    while ((pos = strstr(text + pos, key)) != NULL) {
        count++;
        pos++;
    }

    printf("关键字的数量为:%d\n", count);

    return 0;
}

以上代码会先读入文本和关键字,然后通过 strstr() 函数在文本空间中查找关键字,并统计关键字数量,最后输出结果。