如何检查字符串是否包含特定字符?
How do I check if a string contains a certain character?
我是 C 编程的新手,例如,如果我们有:
我将如何检查字符串是否包含特定字符
void main(int argc, char* argv[]){
char checkThisLineForExclamation[20] = "Hi, I'm odd!"
int exclamationCheck;
}
因此,如果“!”,我如何将 exclamationCheck
设置为 1?存在,如果不存在则为 0?非常感谢您提供的任何帮助。
通过使用 strchr(),例如:
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[] = "Hi, I'm odd!";
int exclamationCheck = 0;
if(strchr(str, '!') != NULL)
{
exclamationCheck = 1;
}
printf("exclamationCheck = %d\n", exclamationCheck);
return 0;
}
输出:
exclamationCheck = 1
如果您正在寻找简洁的单衬里,那么您可以遵循@melpomene 的方法:
int exclamationCheck = strchr(str, '!') != NULL;
如果不允许使用 C 字符串库中的方法,那么,正如@SomeProgrammerDude 所建议的,您可以简单地遍历字符串,如果任何字符是感叹号,如本例所示:
#include <stdio.h>
int main(void)
{
char str[] = "Hi, I'm odd";
int exclamationCheck = 0;
for(int i = 0; str[i] != '[=12=]'; ++i)
{
if(str[i] == '!')
{
exclamationCheck = 1;
break;
}
}
printf("exclamationCheck = %d\n", exclamationCheck);
return 0;
}
输出:
exclamationCheck = 0
请注意,当至少找到一个感叹号时,您可以中断循环,这样您就不需要遍历整个字符串。
PS: What should main() return in C and C++? int
, 不是 void
.
您可以使用普通搜索 !
字符
代码
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[] = "Hi, I'm odd!";
int exclamationCheck = 0;
int i=0;
while (str[i]!='[=10=]'){
if (str[i]=='!'){
exclamationCheck = 1;
break;
}
i++;
}
printf("exclamationCheck = %d\n", exclamationCheck);
return 0;
}
我是 C 编程的新手,例如,如果我们有:
我将如何检查字符串是否包含特定字符void main(int argc, char* argv[]){
char checkThisLineForExclamation[20] = "Hi, I'm odd!"
int exclamationCheck;
}
因此,如果“!”,我如何将 exclamationCheck
设置为 1?存在,如果不存在则为 0?非常感谢您提供的任何帮助。
通过使用 strchr(),例如:
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[] = "Hi, I'm odd!";
int exclamationCheck = 0;
if(strchr(str, '!') != NULL)
{
exclamationCheck = 1;
}
printf("exclamationCheck = %d\n", exclamationCheck);
return 0;
}
输出:
exclamationCheck = 1
如果您正在寻找简洁的单衬里,那么您可以遵循@melpomene 的方法:
int exclamationCheck = strchr(str, '!') != NULL;
如果不允许使用 C 字符串库中的方法,那么,正如@SomeProgrammerDude 所建议的,您可以简单地遍历字符串,如果任何字符是感叹号,如本例所示:
#include <stdio.h>
int main(void)
{
char str[] = "Hi, I'm odd";
int exclamationCheck = 0;
for(int i = 0; str[i] != '[=12=]'; ++i)
{
if(str[i] == '!')
{
exclamationCheck = 1;
break;
}
}
printf("exclamationCheck = %d\n", exclamationCheck);
return 0;
}
输出:
exclamationCheck = 0
请注意,当至少找到一个感叹号时,您可以中断循环,这样您就不需要遍历整个字符串。
PS: What should main() return in C and C++? int
, 不是 void
.
您可以使用普通搜索 !
字符
代码
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[] = "Hi, I'm odd!";
int exclamationCheck = 0;
int i=0;
while (str[i]!='[=10=]'){
if (str[i]=='!'){
exclamationCheck = 1;
break;
}
i++;
}
printf("exclamationCheck = %d\n", exclamationCheck);
return 0;
}