在 C 中,如何知道字符串 char 是否具有特定值?

问题描述

例如, 假设我已经创建了一个名为 string[100] 的字符串并为其分配了一些值,我如何知道 string[n] 的值是否为“m”?

我想过创建另一个 char 变量并为其分配“m”,然后将 string[n] 与 char 与 strcmp 进行比较,但这似乎有点浪费代码,因为在程序中为此创建了一个变量我正在尝试编写代码,我必须将 string[n] 与很多东西进行比较。

预先感谢并抱歉我对 C 的了解不足,我今天开始学习它。

解决方法

您才刚刚开始,C 中的字符串不像在其他一些编程语言中那样“用户友好”,因此询问没有任何问题。

在 C 中,字符串只是一个字符数组,尾随的空字符 ('\0') 表示字符串的结尾。但是,正如注释中提到的,该数组中的每个字符都只是一个字符,它是一个小整数,可以与简单的运算符(例如 ==!=><

例如,如果我们想知道一个字符串是否以 'm' 开头,我们可以编写一个简单的函数来检查数组的第一个元素。请注意,C 数组的索引从 0 开始。

int starts_with(char ch,char *str) {
    return s[0] == ch;
}

一旦您学会了如何在 C 中使用循环和其他控制流机制,您将能够对字符串进行更复杂的操作。举个例子,判断一个字符是否出现在字符串中。

int contains_char(char ch,char *str) {
    for (char *c = str; *c; c++) {
        if (c == ch) {
            return 1;
        }
    }
    return 0;
}