gpt4 book ai didi

c - 如何在C中仅通过字母比较包含数字的字符串

转载 作者:行者123 更新时间:2023-12-01 12:20:59 25 4
gpt4 key购买 nike

我需要在 C 中仅通过字母和数字外观来比较字母和数字的字符串。

例如字符串 "first%dsecond%dj" 应该被认为等于任何字符串,如 "first[number]second[number]j"

我试着这样做:

char *c_i
int i, j;
if (sscanf(c_i, "first%dsecond%dj", &i, &j) == 2 &&
c_i[strlen(in) - 2] == 'j') {
printf("%s", c_i);
}

但 sscanf 会忽略最后一个数字后面的所有内容,因此像 "first%dsecond%dthird%dj" 这样的字符串也会给出真值并打印出来。

一般 sscanf 只关心最后一个说明符之前的字母值,我想找到一些也计算后面字母的东西,比如检查整个字符串并获取任何数字的比较器但数量。

当然,我可以通过创建自己的 char* 扫描器来做到这一点,但如果有更简单的方法,我想避免这种情况。

最佳答案

使用%n获取转换的长度,然后检查字符串是否真的到此结束:

void checkString(const char *s)
{
int i, j, n = 0;

if (sscanf(s, "first%dsecond%dj%n", &i, &j, &n) == 2 && s[n] == '\0')
{
printf("%s", s);
}
}

关于c - 如何在C中仅通过字母比较包含数字的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44000022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com