C程问题~~高手帮帮忙~~

来源:百度知道 编辑:UC知道 时间:2024/05/22 01:49:42
题目为:用户输入一个字符串,统计出字符串的长度,空格个数,字母个数,数字个数,并打印结果.(指针)
我是这样编的,但有些错误,偶找不到哪里错了~~~帮偶看看哈~~~
#include<stdio.h>
#include<string.h>
void main()
{
char str[100];
int *p,n=0,k=0,z=0,s=0;
gets(str);
for(*p=str[0];*p!='\0';n++)
{
if(*p==' ')
k++;
else if(*p>=65&&*p<=122)
z++;
else if(*p>='0'&&*p<='9')
s++;
}
printf("zong chang %d,%dge kong ge,%dge zi mu,%dge shu zi",n,k,z,s);
}

int main(int argc, char* argv[])
{
char *p,str[100];
int n=0,k=0,z=0,s=0;
cin.getline(str,100);
for(p=str;*p!='\0';p++)
{ n++;
if(*p==' ')
k++;
else if(*p>=65&&*p<=122)
z++;
else if(*p>='0'&&*p<='9')
s++;
}
printf("zong chang %d,%dge kong ge,%dge zi mu,%dge shu zi",n,k,z,s);

return 0;
}

#include<stdio.h>
#include<ctype.h>

void main()
{
static int a[4];
char ch;

printf("input chars with end of ctrl+z:\n");
while((ch=getchar())!=EOF)
{
(*a)++;
if(ch==' ')(*(a+1))++;
if(isalpha(ch))(*(a+2))++;
if(isdigit(ch))(*(a+3))++;
}

printf("字符串的总长为:%d\n",*a);
printf("空格的个数为:%d\n",*(a+1));
printf("字母的个数为:%d\n",