发布网友 发布时间:2024-10-23 07:37
共2个回答
热心网友 时间:2024-11-04 01:37
这是我根据你的程序改动的 if里面那句要用双等号“==”表示等于,运行可以,开头也改成最保险的开头,整个代码如下。经测试能行
#include<iostream>
using namespace std;
void sta(char *p)
{
int l=0,d=0,s=0,o=0;
printf("string:");
puts(p);
for(;*p!=NULL;p++)
{
if(*p==32)
{
s++;
}
else if(*p>='A'&&*p<='Z')
{
l++;
}
else if(*p>='a'&&*p<='z')
{
l++;
}
else if(*p>='0'&&*p<='9')
{
d++;
}
else
{
o++;
}
}
printf("letter:%d,digit:%d,space:%d,other:%d\n",l,d,s,o);
}
void main()
{
char str[130];
printf("Input string:\n");
gets(str);
sta(str);
}
热心网友 时间:2024-11-04 01:38
手头没电脑…你试试在子函数最后加个"return;"我记得无返回值的子函数也要有这句…