lwhnx 发表于 2017-11-24 19:54:32

查找字符串大写字母个数

请问怎么错了

#include <stdio.h>

int main()
{
        int i;
        char st;       
        printf("请输入一行英文句子:");
        scanf("%s", &st);
       
        For(i = 0; st != '\0'; i++ )
        {
                if(st >= 'A' && st<= 'Z')
                {
                        j++;
                }       
        }
       
        printf("你总共输入了%d个大写字母!\n", j);
        return 0;
}

BngThea 发表于 2017-11-24 19:56:30

j 未定义和初始化

一去二悄悄 发表于 2017-11-24 20:03:30

首先st应该定义成字符数组,然后你的关键字for写错了,还有j没有定义和初始化

lwhnx 发表于 2017-11-24 20:10:04

一去二悄悄 发表于 2017-11-24 20:03
首先st应该定义成字符数组,然后你的关键字for写错了,还有j没有定义和初始化

自己改对了, 是不是定义 char st[]的时候 必须确定字符数组的大小?
#include <stdio.h>

int main()
{
        int i, j;
        char st;       
        printf("请输入一行英文句子:");
        scanf("%s", &st);
       
        for(i = 0; st != '\0'; i++ )
        {
                if(st >= 'A' && st<= 'Z')
                {
                        j++;
                }
       
        }
       
        printf("你总共输入了%d个大写字母!\n", j);
        return 0;
}

lwhnx 发表于 2017-11-24 20:10:43

一去二悄悄 发表于 2017-11-24 20:03
首先st应该定义成字符数组,然后你的关键字for写错了,还有j没有定义和初始化

怎么那个数组不定大小就运行不了

一去二悄悄 发表于 2017-11-25 08:38:19

lwhnx 发表于 2017-11-24 20:10
自己改对了, 是不是定义 char st[]的时候 必须确定字符数组的大小?

因为你没有初始化它,编译器确定不了大小,就没有办法为它分配内存,也就是要么声明时给出大小,要么不给出大小而选择初始化它

lwhnx 发表于 2017-11-25 09:59:51

一去二悄悄 发表于 2017-11-25 08:38
因为你没有初始化它,编译器确定不了大小,就没有办法为它分配内存,也就是要么声明时给出大小,要么不给 ...

怎么初始化 不要中括号吗? char ch?

一去二悄悄 发表于 2017-11-25 20:26:13

例如:char ch[] = {'a','b','c'};
或者char ch[] = {"abcdefg"};
这里就不用写大小啦

一去二悄悄 发表于 2017-11-25 20:27:15

这些任何一本C语言书上都有,你应该认真看看书
页: [1]
查看完整版本: 查找字符串大写字母个数