You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用sscanf从包含数字的字符串中提取纯字母单词

sscanf提取字符串开头纯字母的正确写法

原写法里的%s格式符会读取到第一个空白字符才终止,自然会把后续的数字也一并读入,无法自动过滤非字母内容。

要实现仅提取连续字母段的需求,直接用sscanf的字符集合匹配规则即可,格式符写为%[a-zA-Z]:该规则会从字符串起始位置开始,连续匹配所有属于a-z、A-Z范围的字母,遇到第一个非字母字符立刻停止匹配,刚好满足提取纯字母内容的要求。

正确实现代码如下:

char str[10];
// 匹配连续字母,遇到首个数字自动终止读取
sscanf("word1233", "%[a-zA-Z]", str);

补充注意事项

  • 上述写法仅能提取字符串开头位置的连续字母,如果目标字母段不在字符串起始位置,需要先将读指针偏移到字母段起始位置再做匹配
  • 为避免缓冲区溢出,建议给匹配长度加上限制,比如本例中str数组长度为10,需要预留1位存放字符串结束符\0,格式符可以写为%9[a-zA-Z],最多读取9个字符
  • 如果确定待提取的字母全为小写,可以把匹配集合简化为%[a-z]

内容的提问来源于stack exchange,提问作者sanvi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 10:51:22