【发布时间】:2021-04-30 14:53:45
【问题描述】:
抱歉,我对 c 比较陌生。我想要做的是遍历一个字符串并将字符串中的每个字符与一个字符进行比较。如果成功,我会打印一些值。但是我遇到了分段错误。
我的代码:
int i;
const char* perc = '%';
char mystr[7] = "hell%o";
for(i=0;i<sizeof(mystr);i++){
if(strcmp(mystr[i],perc)!=0){
printf("%d",i);
}
注意:我在这里没有使用 % 格式字符串,我只是在寻找它在字符串中的位置。
谢谢。
【问题讨论】:
-
strcmp()采用指向以空字符结尾的字符串的指针。单个字符不是那样的。只需将perc声明为char并检查mystr[i] == perc是否。 -
const char* perc = '%'; -
提示:使用
-Wall编译并注意警告。 -
我实际上只是在寻找它在字符串中的位置。听起来你想要
strchr()。 -
您可能想否定比较。