如何使用ASSERT检查字符串是否包含字符?

时间:2018-10-21 09:43:33

标签: c

如何使用ASSERT检查字符串是否包含字符?例如,仅当字符串中包含“ +”时,我才想对其进行处理。如何在C中使用assert?

1 个答案:

答案 0 :(得分:1)

您可以将strchrassert函数一起使用。

char x[20] = "hello+"; 

assert(strchr(x,'+') != NULL);
如果在strchr(x,'+')中找不到字符,

NULL将返回string,因此您可以将其返回值用于assert

根据assert man page

  

如果expression为false(即比较等于零),则assert()          将错误消息打印为标准错误并终止程序          通过调用abort(3)。该错误信息包括文件名          和包含assert()调用的函数,源代码行          通话号码和参数文字;像这样:

根据strchr man page

  

strchr()和strrchr()函数返回指向匹配对象的指针              字符或NULL(如果找不到该字符)。终止              空字节被认为是字符串的一部分,因此如果指定了c              作为“ \ 0”,这些函数返回指向终止符的指针。