c++如何一次判断一串字符中既有数字又有字母

lanse20_2008 2014-01-12 08:47:04
如题,就是一串字符中,既有数字又有字母,现在想通过一次判断,就能判断出这串字符中是否包含字母。看了一个string.match()的用法,但是我的软件里面就没有match这个函数,不知道为什么。还有,假如用正则表达式,改怎么写呢?
谢谢啦~
...全文
1181 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-01-13
  • 打赏
  • 举报
回复
#include <ctype.h>
int hasAandD(const char *s) {//ASCIIZ s 中既有半角英文大写或小写字母又有半角阿拉伯数字返回1;否则返回0
 int r;
 r=0;
 whlie (1) {
  if (*s==0) break;
  if (isalpha(*s)) r|=1;
  if (isdigit(*s)) r|=2;
  if (3==r) return 1;
  s++;
 }
 return 0;
}
Sandrer 2014-01-13
  • 打赏
  • 举报
回复
bool findchar(const char *pch)
{
    bool bFound = false;
    char *p = (char *)pch;
    while (*p++)
    {
        if (*p >= '0' && *p <= 'Z')
        {
            bFound = true;
            break;
        }
    }

    return bFound;
}
starytx 2014-01-13
  • 打赏
  • 举报
回复
我觉得循环已经很简单了。
lanse20_2008 2014-01-13
  • 打赏
  • 举报
回复
谢谢各位,看来真的得用循环
xiaohuh421 2014-01-13
  • 打赏
  • 举报
回复
循环是必需的. 使用现成的函数内部也是需要循环的.
buyong 2014-01-12
  • 打赏
  • 举报
回复
11 all() 判断字符串中的所有字符是否全部满足这个谓词 Example: bool is_123digit(const char &ch) { if(ch == '1' || ch == '2' || ch == '3') return true; else return false; } ... string str1("12332211"); bool result = all(str1, is_123digit); // result == true str1 = "412332211"; result = all(str1, is_123digit); // result == false 照着改就行 http://lunan.iteye.com/blog/1563575
threenewbee 2014-01-12
  • 打赏
  • 举报
回复
既有字母又有数字 ([a-zA-Z]+\d+)|(\d+[a-zA-Z]+)
vipcxj 2014-01-12
  • 打赏
  • 举报
回复
google, 关键字isalpha
lanse20_2008 2014-01-12
  • 打赏
  • 举报
回复
有没有比for循环更简单点的呢?
引用 1 楼 zhuobattle 的回复:
简单点一个for循环判断
zhuobattle 2014-01-12
  • 打赏
  • 举报
回复
简单点一个for循环判断

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧