如何从存储在字符串中的字母中分离数字

时间:2018-11-29 20:10:14

标签: c string

我似乎可以弄清楚如何从字符串中的数字中分离出字母标识符。例如,尝试将Q10分为Q和10两个部分。非常感谢!

2 个答案:

答案 0 :(得分:1)

您可以使用isdigit中的函数<ctype.h>确定何时停止递增指向字符串的指针:

char *p = str;
while(*p)
{
    if(isdigit(*p)) break;
    p++;
}
puts(p);

如果str中没有数字,则puts行将输出换行符,而不会输出其他任何内容。

答案 1 :(得分:0)

有人建议使用其他库中的某些功能,但您可以自己完成。

首先,您需要逐字符遍历整个字符串char。为此,请检查this问题。

现在我们知道该怎么做,我们需要知道如何处理给定的char,看看它是数字,字母还是其他。

每个char都具有ascii表中的值。

例如,如果我们在char a = '1'代码中有ascii,则将其表示为49

所以现在我们可以做这样的事情:

char test = '5';

if(test >= 48 && test <= 57) //These represents numbers in ascii
{
    // Do something since our char is number
}
else if(test >= 65 && test <= 90) // These represents Higher Up Letters
{
    // Do something with higher up letter
}
else if(test >= 97 && test <= 122) // These represents lower case letters
{
    // Do something
}
else
{
    // It is not number, nor lower case letter, nor higher case letter
}

现在,如果我们在循环中实现此功能,则您可以做任何您想做的事情,也许将所有数字存储在一个字符串中,将字符存储在另一个字符串中,或​​者将它们加起来或由其他东西决定,这取决于您。