您的位置:

如何在C语言中判断字符串中是否包含某个字符

一、使用strchr函数判断

在C语言中,我们可以使用strchr库函数来查找一个特定的字符是否在一个字符串中存在。strchr函数的原型在string.h头文件中声明为:

char* strchr(const char* str, int c);

其中str为要查找的字符串,c是要查找的字符。

如果该字符未在字符串中找到,则返回NULL,否则返回该字符在字符串中的位置。

代码示例:

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

int main(){
    char str1[] = "Hello, world!";
    if (strchr(str1, 'o') != NULL) {
        printf("The character o is found.\n");
    }
    else {
        printf("The character o is not found.\n");
    }

    return 0;
}

输出结果:

The character o is found.

二、使用while循环遍历字符串

我们也可以使用while循环来遍历字符串,逐个比较其中的每一个字符是否是我们要查找的字符。

代码示例:

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

int main(){
    char str1[] = "Hello, world!";
    char c = 'o';
    int flag = 0;
    int i = 0;

    while (str1[i] != '\0') {
        if (str1[i] == c) {
            flag = 1;
            break;
        }
        i++;
    }

    if (flag == 1) {
        printf("The character %c is found.\n", c);
    }
    else {
        printf("The character %c is not found.\n", c);
    }

    return 0;
}

输出结果:

The character o is found.

三、使用strstr函数判断

除了strchr函数外,我们还可以使用strstr函数查找一个字符串中是否包含另一个字符串。strstr函数的原型在string.h头文件中声明为:

char* strstr(const char* str1, const char* str2);

其中,str1是要查找的字符串,str2是要查找的子字符串。

如果子字符串未在父字符串中找到,则返回NULL,否则返回子字符串在父字符串中的位置。

代码示例:

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

int main(){
    char str1[] = "Hello, world!";
    char str2[] = "wor";
    if (strstr(str1, str2) != NULL) {
        printf("The substring %s is found.\n", str2);
    }
    else {
        printf("The substring %s is not found.\n", str2);
    }

    return 0;
}

输出结果:

The substring wor is found.

四、使用自定义函数实现判断

在C语言中,我们也可以通过自定义函数来实现判断目标字符是否在字符串中存在的功能。

代码示例:

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

int isInString(char str[], char c);

int main(){
    char str1[] = "Hello, world!";
    char c = 'o';

    if(isInString(str1, c)){
        printf("The character %c is found.\n", c);
    }
    else{
        printf("The character %c is not found.\n", c);
    }

    return 0;
}

int isInString(char str[], char c){
    int i = 0;
    while(str[i] != '\0'){
        if(str[i] == c){
            return 1;
        }
        i++;
    }
    return 0;
}

输出结果:

The character o is found.