当前位置: 代码迷 >> C语言 >> 我数组这样用行吗?斑竹再来啊,我还是无法解决呀!(现在已解决)
  详细解决方案

我数组这样用行吗?斑竹再来啊,我还是无法解决呀!(现在已解决)

热度:363   发布时间:2007-05-17 21:44:20.0
我数组这样用行吗?斑竹再来啊,我还是无法解决呀!(现在已解决)

题目:输入字符分别统计字母、数字、空格、和其它字符的个数。
我的做法:
#include<stdio.h>
#include<ctype.h>
#include<string.h>
#define k strlen(str)
void main()
{
int i,let=0,num=0,spa=0,oth=0;
char str;
char N[k];
scanf("%s",&str);
for(i=0;i<k;i++)
{
char N[i]=str;
if(isalpha(N[i])!=0)
let++;
else if(isdigit(N[i])!=1)
num++;
else if(N[i]==' ')
spa++;
else
oth++;
}
printf("字母%d",let);
printf("数字%d",num);
printf("空格%d",spa);
printf("其它%d",oth);

}

[此贴子已经被作者于2007-5-28 20:39:05编辑过]

搜索更多相关的解决方案: 斑竹  

----------------解决方案--------------------------------------------------------
初使化数组"N[k]"能不确定大小k吗???(我初学,还不太懂...但好象不能)
能这样转吗???
scanf("%s",&str)以后,str为字符串

下面"char N[i]=str;"把字符串付给一维数组也不对吧
----------------解决方案--------------------------------------------------------

#include<stdio.h>
#include<ctype.h>
#include<string.h>
#define k strlen(str)
void main()
{
int i,let=0,num=0,spa=0,oth=0;
char str;
char N[k]; //在c99标准前不可以,以后可以,因为预编译之后,将变成char N[strlen(str)],strlen(str)只有运行时才确定。还有str是一个字符,
//strlen()的参数时字符串
scanf("%s",&str);
for(i=0;i<k;i++)
{
char N[i]=str; // c里面不可以这样声明,声明要在最上面,c++可以这样用
if(isalpha(N[i])!=0)
let++;
else if(isdigit(N[i])!=1) //这应该是else if(isdigit(N[i]))
num++;
else if(N[i]==' ')
spa++;
else
oth++;
}
printf("字母%d",let);
printf("数字%d",num);
printf("空格%d",spa);
printf("其它%d",oth);

}


----------------解决方案--------------------------------------------------------

谢谢您的回复,我再仔细看看。


----------------解决方案--------------------------------------------------------
自己再顶上来!大家进来发言啊.不要吝啬啊,都发表点意见和建议.
----------------解决方案--------------------------------------------------------
以下是引用werren在2007-5-17 21:44:20的发言:

题目:输入字符分别统计字母、数字、空格、和其它字符的个数。
我的做法:
#include<stdio.h>
#include<ctype.h>
#include<string.h>
#define k strlen(str)
void main()
{
int i,let=0,num=0,spa=0,oth=0;
char str;
char N[k];
scanf("%s",&str);//类型就错误,直接scanf("%s",N);str不需要
for(i=0;i<k;i++)
{
char N[i]=str;//和上面一样.
if(isalpha(N[i])!=0)
let++;
else if(isdigit(N[i])!=1)//应该是==1
num++;
else if(N[i]==' ')
spa++;
else
oth++;
}
printf("字母%d",let);
printf("数字%d",num);
printf("空格%d",spa);
printf("其它%d",oth);

}



----------------解决方案--------------------------------------------------------

  相关解决方案