加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

实现isalpha(const char * s) – 如何改进这个功能?

发布时间:2020-12-16 10:54:37 所属栏目:百科 来源:网络整理
导读:我需要一种方法来检查字符串是否只包含字母字符.由于我在程序中需要多次使用该功能,因此我认为将它放入函数是个好主意. 这是我的实现: int sisalpha(const char *s) { int result = 1; while (s++ != '') { result = isalpha(*s); // uses isalpha of cty
我需要一种方法来检查字符串是否只包含字母字符.由于我在程序中需要多次使用该功能,因此我认为将它放入函数是个好主意.

这是我的实现:

int sisalpha(const char *s) {
    int result = 1;

    while (s++ != '') {
        result = isalpha(*s); // uses isalpha of <ctype.h>

        if (result == 0) {
            return result;
        }
    }

    return result;
}

我能在这里改进什么?传递某种大小以避免缓冲区溢出并允许检查“子串”是否有益?

解决方法

使用 strspn.

设置要检查的字符集,大写和小写字母.如果strspn返回的值与strlen相同,则它全部为字母.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读