我似乎可以弄清楚如何从字符串中的数字中分离出字母标识符。例如,尝试将Q10分为Q和10两个部分。非常感谢!
答案 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
}
现在,如果我们在循环中实现此功能,则您可以做任何您想做的事情,也许将所有数字存储在一个字符串中,将字符存储在另一个字符串中,或者将它们加起来或由其他东西决定,这取决于您。