代码逻辑我就不改了,自己再看看。
语法上要说的是,不管要存什么数据,你都必须得先分配空间。
下面代码的 a[100] 意指为变量a分配了100个字节的空间。
即便你用指针来操作,指针也要指向一块有效的内存空间。
你代码的中
const char* a; 这仅仅是一个指针而已,一个地址。要使用这个指针,得让他指向一块有效的内存空间
如:
char b=[100];
char *a;
a = &b;
#include <stdio.h>
#include <string.h>
int main()
{
char a[100];
int i,m = 0,n = 0,p = 0,q = 0;
printf("请输入:");
scanf("%s",&a);
for(i = 0; i < strlen(a); i++)
{
if(a[i] >= 65 && a[i] <= 90 &&a[i] >= 97 && a[i]<= 122)
{
m += 1;
}
else if(a[i] <= 57 && a[i] >= 48)
{
n += 1;
}
else if(a[i] == 32)
{
p += 1;
}
else
{
q += 1;
}
}
printf("letter=%d\nspace=%d\ndigit=%d\nother=%d\n",n,p,m,q);
return 0;
}
|