linux c 判断字符串是否是数字

本是古典 何须时尚 2021-07-28 11:21 735阅读 0赞

方法一

  1. /**
  2. * @brief Function isdigitstr() 判断传入字符串是否全数字
  3. * @param[in] char *str 字符串
  4. * @retval 1: 全字符串,0:非全字符串
  5. * @pre
  6. * @post
  7. */
  8. static int isdigitstr(char *str)
  9. {
  10. return (strspn(str, "0123456789")==strlen(str));
  11. }

解释:

可以用strspn与strlen组合的方式判断一个字符串是否全数字。strspn返回的是str中有多少字符与参数”0123456789”中相同,而全数字时正好与strlen相同,

所以此组合可以判断一个字符串是否为全数字的。

strspn函数定义:

  1. // 头文件
  2. #include <string.h>
  3. size_t strspn (const char *s,const char * accept);

函数说明 strspn()从参数s 字符串的开头计算连续的字符,而这些字符都完全是accept 所指字符串中的字符。

简单的说,若strspn()返回的数值为n,则代表字符串s 开头连续有n 个字符都是属于字符串accept内的字符。

返回值 返回字符串s开头连续包含字符串accept内的字符数目

方法二

  1. #include <ctype.h>
  2. #include <string.h>
  3. int is_int(char *str)
  4. {
  5. int len = strlen(str), i = 0;
  6. for (i = 0; i < len; i++)
  7. {
  8. if (!(isdigit(str[i])))
  9. return 0;
  10. }
  11. return 1;
  12. }

返回值:1: 全字符串,0:非全字符串

发表评论

表情:
评论列表 (有 0 条评论,735人围观)

还没有评论,来说两句吧...

相关阅读