例如, 假设我创建了一个名为
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;
}