C语言问题,求大神解决,谢谢啦,我是小白,最好能够解释下。

2024-11-24 17:59:10
推荐回答(6个)
回答1:

主要是p没有指向str字符串,其实这里str可以直接当做指针用的。
#include#include
void main()
{
char str[5];
int i=0, len=0;
int a=0,b=0,c=0;
char *p; /* 这里原来用的int改成char,从标准输入接受进来的值其实都是字符型 */
printf("Input:");
gets(str); /* 这里原来用的int改成char,从标准输入接受进来的值其实都是字符型 */

p = NULL; /* 指针初始化 */
len=strlen(str); /* 标准输入输入的字符串的长度 */
p = str;

for(i=0;i {
if((*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z')) /* || 和&&符是同一级别的运算表达式,所以需要用括号来保证运算 */
a++;
else if(*p>'0' && *p<'9') /* 因为接受标准输入的是字符型,所以这里的0和9 都是字符型‘0’和‘9’ */
b++;
else /* 这里我不知道原题,我理解上,应该是 非字母和数字 的个数 */
c++;
p++; /* 指针后移一位,指向下一个字符 */
}
printf("\n字母个数=%d\n数字个数=%d\n正数个数=%d\n",a,b,c);

}

回答2:

#include
#include
void main()
{
char str[100];
int i,len;
int a=0,b=0,c=0;
int *p;
printf("Input :");
gets(str);
len=strlen(str);
p=str;
for(i=0;i {
if((*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z'))
a++;
else if(*p>0&&*p<9)
b++;
else
c++;
p++;
}

回答3:

指针*P里面没值,你判断的出什么。。

回答4:

指针*P没有赋值啊~~~~那你的if条件肯定执行不了的

回答5:

你的p指针没有指向字符串。。。

回答6:

*p='a'&&*p<='z'||*p>='A'&&*p<='Z'?????