例如一个字符串:  'aaa56ee78cc'我想写个存储过程,来求出输入的字符串中字母以及数字的个数。哪位大侠给个思路

解决方案 »

  1.   

    length(str)-length(translate(str,' 0123...9abc...zABC...Z',' '))
      

  2.   

    1:length(str)-length(replace(translate(str,'0123456789.',' '),' '))
    2:length(str)-length(replace(translate(str,abc..zABC...Z',' '),' '))
      

  3.   

    select 
    length(trim((translate(str,'0123456789',' '))) "字符个数",
    length(trim(translate(str,'abc...zABC...Z',' '))) "数字个数"
    from table1
      

  4.   

    SQL> SELECT 'aaa56ee78cc' STR,
      2         TRIM(TRANSLATE('aaa56ee78cc', '0123456789', ' ')) STR_1,
      3         LENGTH(TRIM(TRANSLATE('aaa56ee78cc', '0123456789', ' '))) LEN
      4    FROM DUAL;
     
    STR         STR_1          LEN
    ----------- ------- ----------
    aaa56ee78cc aaaeecc          7
      

  5.   

    oracle中好像不支持...省略号. 要写全.
      

  6.   

    #include<stdio.h>
    int main()
    {
    int Array[36]={0};
    char e;
    int i=0;
    while((e=getchar())!='\n')
    {
    if(e>='a'&&e<='z')
    Array[int(e-'a')]++;
    if(e>='A'&&e<='Z')
    Array[int(e-'A')]++;
    if(e>='0'&&e<='9')
    Array[e-'0'+26]++;
    }
    e='A';
    for(i;i<36;i++)
    {
    if(Array[i]!=0&&i<26)
    {
    printf("%c:%2d个  ",char(e+i),Array[i]);
    }
    else
    if(Array[i]!=0)
    printf("%c:%2d个  ",char('0'+i-26),Array[i]);
    if(i%5==0)
    printf("\n");
    }
    return 0;
    }