黑马程序员技术交流社区

标题: 计算单词个数及首字母大写的代码,哪里出错了? [打印本页]

作者: a752538236    时间: 2016-4-13 10:31
标题: 计算单词个数及首字母大写的代码,哪里出错了?
帮忙看下哪里错了,只能统计第一个单词,后面的全是小写也没统计
#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;
}



作者: 冷傲阳    时间: 2016-4-13 12:55
两个问题,
1 应该定义char类型的字符数组,你定义成int类型的
2 for循环语句里面你还要在多加一句话,else count++,不然的话你只把转化成大写的字幕+1,小写字母都没有算进去。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2