if (text[i]<'0'&&text[i]>'9')
这条件 真叫牛X
#include
void main()
{
char text[100];int i;char q[100];int a=0;
scanf("%s",text);
for(i=0;i<100;i++)
{
if (text[i]<'0'||text[i]>'9')//
{
q[a++]=text[i];//
}
}
q[a]='\0';
printf("%s",q);
}
text前加&是不对的,你要干什么啊,意图不是很明白,如果单单是统计数字字等个数的话就a++,不用数组,如果单个统计的话(几个0,几个1。。。。)是另个代码了
要上按我说的那样加上个这样的语句应该可以了
int c ,s[10]//在声明里加上,那个s是计数器
在if里加上
c=(int)text[i];
q[c-48]++;
也不知道你是不是想完成这个功能
还有个,循环条件可以是text[i]!='\0
如果是提取数字的话,最好用\0做循环条件,还有数组q应该先给个值好些吧
if (text[i]<'0'&&text[i]>'9') 改成if (text[i]<'0'||text[i]>'9') 试试
这个程序,你想要表达什么意思啊?我试了,没有问题,就是个对的
你的条件是小于0大于9,这样的话,譬如chinese,其实没有q值与之对应。
你在最后那里加个换行符,就可以看的更明显了
printf("%s\n",q);
我不太清楚楼主这个程序是想实现什么……就说一下我的想法……不一定对……
q没有初始化……里面的内容不确定…而且这些内容应该都是符合小于0大于9的…如果把100个单元都打出来……应该有很多期待以外的字符出现吧……
字符串要以'\0'结尾,你这么写似乎没有给q结尾吧。