c语言,求解答!!!

从键盘敲入一个任意字符串,用一位数组存放起来,咋表示呢?
最终目的是要统计一个任意字符串中数字的个数
Loaded 'ntdll.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\kernel32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\kernelbase.dll', no matching symbolic information found.
The thread 0x11F4 has exited with code 11 (0xB).
The program 'C:\Users\Administrator\Desktop\新建文件夹\C语言\Debug\Cpp1.exe' has exited with code 11 (0xB).

函数功能:输入一字符串(换行为结束标志)统计其中数字(0,1,2,…,9不单独统计)、空白和其它字符出现的次数。

#include <stdio.h>

int main(int argc, char *argv[])

{

char c;

int digit = 0, blank = 0, other = 0;

while((c = getchar()) != '\n')

{

if((c >= '0') && (c <= '9'))

{

digit++;

}

else if((c == ' ')||(c == '\t'))

{

blank++;

}

else

{

other++;

}

}

printf("数字个数digit=%d 空白个数blank=%d 其他字符个数other=%d\n",digit,blank,other);

return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-08
把每一位拆开用数组存,然后模拟手算过程,把每一位乘起来,应该进位的进位
#include<stdio.h>
#include<string.h>
void a2d(int x[],char a[])
{
int i,j;
for(i=0;i<505;i++)
x[i]=0;
j=strlen(a)-1;
for(i=0;j>=0;j--,i++)
x[i]=a[j]-'0';
}
int my_len(int x[])
{
int i;
for(i=504;i>=0&&x[i]==0;i--);
return i<0?0:i;
}
void multi(int x[],int y[])
{
int sum[505]={0},i,j,k,lx=my_len(x),ly=my_len(y);
for(i=0;i<=lx;i++)
for(j=0;j<=ly;j++)
sum[i+j]+=x[i]*y[j];
for(i=0;i<504;i++)
{
sum[i+1]+=sum[i]/10;
sum[i]%=10;
x[i]=sum[i];
}
}
int main()
{
int i,x[505],y[505];
char a[505],b[505];
while(scanf("%s%s",a,b)!=EOF)
{
a2d(x,a);
a2d(y,b);
multi(x,y);
i=my_len(x);
for(;i>=0;i--)
printf("%d",x[i]);
puts("");
}
return 0;
}
第2个回答  2012-05-08
char str[50];
gets(str);
这样就可以接收键盘输入,并放到str数组中。
统计用
int i=0,num=0;
while(str[i]!='\0'){
if(str[i]<='0' && str[i]>='9') num++;
i++;
}
printf("共有数字%d个",num);追问

#include
main()
{
char str[50];
int i=0,num=0;
printf("请输入一个任意字符串:");
gets(str);
for(i=0;str[i]!='\0';i++)
{
if(str[i]='9') num++;
}
printf("共有数字%d个",num);
}
这样对吗?
可以输入字符串,但不输出
状态栏显示看最上方问题补充,望继续解答!!

本回答被提问者采纳
第3个回答  2012-05-08
char str[1000];
char inputchar;
int i=0;
do{
inputchar=getchar();
if(inputchar!='\r'){
str[i]=inputchar;
i++;
}else{
str[i]=0;
}
}while(1);
相似回答