A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

帮忙看下哪里错了,只能统计第一个单词,后面的全是小写也没统计
#include <stdio.h>

int main(int argc, const char * argv[]) {
    //定义变量
    int str[100];
    int words = 0;//单词标记
    int count = 0;//单词个数
    //提示用户输入字符串
    printf("请输入一个字符串:\n");
    //接收字符串,并保存到数组中
    gets(str);
    //循环取出每一个字符 遇到\0就结束
    for (int i = 0;str[i] != '\0'; i++) {
        //判断
        //当前循环 字符 是空格 下次循环一定是单词
        if (str[i]==' ') {
            words = 0;//标记为单词
        }else if (words == 0) {     //如果遇到单词标记
            str[i] = str[i] - 32;   //首字母改为大写
            count++;                //单词个数加1
            words = 1;              //取消标记
        }
    }
    printf("单词个数:%d,字符串:%s",count,str);
        return 0;
}


1 个回复

正序浏览
两个问题,
1 应该定义char类型的字符数组,你定义成int类型的
2 for循环语句里面你还要在多加一句话,else count++,不然的话你只把转化成大写的字幕+1,小写字母都没有算进去。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马