c语言找出大写字母的程序问题,请问出错在哪里,怎样修改?

2025-06-28 18:59:24
推荐回答(2个)
回答1:

int searchletter(char *str)
{
    int x=0;
    while(*str!='\n')
    if(*str>='A'&&*str<='Z')
        {
            x++;
            str++;
        }
    return x;
}

修改为:

int searchletter(char *str)
{
    int x=0;
    while(*str!='\n')
    {
       if(*str>='A'&&*str<='Z')
       {
            x++;
           
        }
        str++;    
    }
    return x;
}

 具体实现如下:

#include
#include
#include
int searchletter(char *str)
{
    int x=0;
    while(*str!='\n')
    {
        if(*str>='A'&&*str<='Z')
        {
            x++;
        }
        str++;
    }
    return x;
}

int main()
{
    int n;
    char s[100],*p;
    printf("请输入一个字符串:\n");
    int i=0;
    while((s[i]=getchar())!='\n')i++;
    p=&s[0];
    n=searchletter(p);
    printf("大写字母的个数为:%d\n",n);
    system("pause");
    return 0;
}

回答2:

while((s[i]=getchar())!='\n')i++;
p=&s[0];
这个错了
应该写成
while((s[i]=getchar())!='\n')
{

n=searchletter(p);
i++;

}
且x要定义static int 型