首页 > 解决方案 > 检查一个字符串是否在另一个没有 C 中指针的字符串中

问题描述

我刚刚开始 c 编程,任务是编写一个程序来在另一个字符串中查找一个字符串,如果找到目标字符串,则打印“是”,如果不是,则打印“否”。我已经编写了一个函数来完成上述任务,但它并不完全有效。如果有人能告诉我我的代码有什么问题,我将不胜感激。

void substring (char source[], char target[]){
    int i = 0;
    int j = 0;
    int counter = 0;
    int a = strlen(target);
    int b = strlen(source);
    while (source[i] != 0){
        while (target[j] != 0){
            if (target[j] == source[i])
                for (int k = 1; k < a; k++){
                    if (target[j + k] == source[i + k])
                        counter += 1;
                }
            j++;
        }
        i++;
    }
    if (counter == a)
        printf("Yes\n");
    else
        printf("No\n");
}

标签: carraysstringsubstringc-strings

解决方案


在 C 中调用了一个函数strstr,它完全可以完成您的工作。

在这里通过它。

示例代码

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

int main()
{
    char source[] = "This is a simple string";
    char Target[] = "simple";
    char *firstOccurrenceOfTarget = strstr(source, Target);

    if (firstOccurrenceOfTarget == NULL)
    {
        printf("No\n");
    }
    else
    {
        printf("Yes\n");
    }
    return 0;
}

推荐阅读