**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答复。
此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
5天前关闭。
Improve this question
我正在做一个小练习,允许你在c中创建一个密码来测试我已经掌握的一些知识。密码必须具有的属性之一是感叹号。
char password[15];
char *spche = strchr(password, '!');
while (spche != NULL)
{
if (spche != 0) {
printf("cool");
spche = strchr(spche+1,'!');
} else if (spche == 0) {
printf("Please include '!' in your password");
// spche = strchr(spche+1,'!');
}
}
我能够找到感叹号,如果它在那里,这将推动“酷”打印。但是,当没有感叹号时,它只是完成代码,而不执行else if print。谢谢你给我的每一条建议。
2条答案
按热度按时间mo49yndu1#
根据strchr,
strchr()和strrchr()函数返回一个指向匹配字符的指针,如果找不到该字符,则返回NULL。
因此,如果
!
不在char数组中,它将返回NULL
,因此它不会首先执行while循环。r8xiu3jd2#