在C中检查字符串中的数字时遇到问题

在C中检查字符串中的数字时遇到问题,c,string,char,C,String,Char,我检查了论坛上发布的类似问题,但没有一个回答我的问题 我有一个字符串(char s[]),我想将该字符串中的数字“复制”到另一个字符串(char n[]) 以下是我的尝试: char s[] = "oa323shsh123383.33hbabsa3€" int len = strlen(s); char n[]; int k; for (k = 0; k <= len; k++){ if( s[k] >= '0' || s[k] <

我检查了论坛上发布的类似问题,但没有一个回答我的问题

我有一个字符串(
char s[]
),我想将该字符串中的数字“复制”到另一个字符串(
char n[]

以下是我的尝试:

   char s[] = "oa323shsh123383.33hbabsa3€"
   int len = strlen(s);
   char n[];
   int k;

   for (k = 0; k <= len; k++){
       if( s[k] >= '0' || s[k] <= '9') {
           n[k] = s[k] - 48;
       }
   }
char s[]=“OA323SH123383.33HBABASA3€”
int len=strlen(s);
字符n[];
int k;
对于(k=0;k='0'| | s[k]在IF中使用&&

分配数组n。简单的方法是将n声明为

char n[] = char[len+1];
使用另一个变量计算添加到n中的数字,否则n将为:

"..323....123383" etc
应该以这样的方式结束

char s[] = "oa323shsh123383.33hbabsa3€"
int len = strlen(s);
char n[] = char[len+1];
int k, j=0;

for (k = 0; k <= len; k++){

    if( s[k] >= '0' && s[k] <= '9') {
        n[j] = s[k] - 48;
        n[j+1] = '\0';
        j++;
    }
}
char s[]=“OA323SH123383.33HBABASA3€”
int len=strlen(s);
char n[]=char[len+1];
int k,j=0;
对于(k=0;k='0'和&s[k]
chars[]=“oa323shsh123383.33HBABASA3欧元”;
int len=strlen(s);
char*n=(char*)malloc(len+1);
int i,j=0;
对于(i=0;i如果(s[i]>='0'&&s[i]您确定这
charn[]编译?你没有为“n”分配空间,而且,你真正想做的是什么?没有数字的“slot”仍然没有赋值,而那些没有数字的“slot”得到的是不可打印的东西。不,没有,但是如果我给它一个维,这个维在本例中是固定的,那么它可以编译。但是我把它留空,因为这不是问题所在,我认为问题在于for循环中的if条件…@sp2danny我正在尝试获取字符串“s”,并将该字符串中的数字复制到另一个名为n的字符串中。谢谢,我找到了答案!然后将答案设置为正确答案,如果您不介意的话:)
char s[] = "oa323shsh123383.33hbabsa3€";
int len = strlen(s);
char* n = (char*) malloc(len+1);
int i,j=0;

for (i = 0; i < len; ++i)
{
    if( s[i] >= '0' && s[i] <= '9')
        n[j++] = s[i];
}
n[j]=0;