c语言,统计字符编译无法通过

来源:百度知道 编辑:UC知道 时间:2024/04/27 23:03:40
#include <stdio.h>
void tongji(char str[]);

main ()
{
extern int abc_num,num_num,kong_num,other_num;
static char cstr[100]="";
printf("输入一个字符串:");scanf("%s",&cstr);
tongji(cstr);
printf("有%d个字母\n",abc_num);
printf("有%d个数字\n",num_num);
printf("有%d个空格\n",kong_num);
printf("有%d个其它字符",other_num);
getch();
}

void tongji(char str[])
{
int str_len,i;
str_len=strlen(str);
for (i=0;i<str_len;i++)
{
/* 统计前三个项 */
if (str[i]>='0' && str[i]<='9') num_num+=1;
if ((str[i]>='A" && str[i]<='Z') || (str[i]>='a' && str[i]<='z')) abc_num+=1;
if (str[i]==' ') kong_num+=1;
}
/* 统计非字母非数字非空格的字符 */
other_num=str_

extern int abc_num,num_num,kong_num,other_num;
在另外一个文件定义了?但是没见你包含某个.h文件...

if (str[i]>='0' && str[i]<='9') num_num+=1;
if ((str[i]>='A" && str[i]<='Z') || (str[i]>='a' && str[i]<='z')) abc_num+=1;
if (str[i]==' ') kong_num+=1;
在main里面声明的extern,已经无法在tongji中使用了...

如果你没有在其它文件中定义abc_num,num_num,kong_num,other_num;
将main的:
extern int abc_num,num_num,kong_num,other_num;
修改为:
int abc_num,num_num,kong_num,other_num;
然后放到main前面.

如下:

#include <stdio.h>

int abc_num,num_num,kong_num,other_num;

void tongji(char str[]);

main ()
{
// 为了安全一点,最好给上面定义的几个_num赋初值0
static char cstr[100]="";
printf("输入一个字符串:");scanf("%s",&cstr);
tongji(cstr);
printf("有%d个字母\n",abc_num);
printf("有%d个数字\n",num_num);