2条回答 默认 最新
- 藏猊 2021-12-21 11:14关注
你的c=getchar() 没带括号,=的优先级没getchar() != '\n' 高,所以读入的都是乱码。
然后循环结束要加个’\0'因为getchar的读入不会自己加,于是你的for循环就会出问题。
写一串不如直接一个gets(str)搞定。int main() { int i = 0, c; int word; char str[200]; word = 1; //gets(str); while (((c = getchar()) != '\n')) { str[i++] = c; } str[i] = '\0'; for (i = 0; str[i] != '\0'; i++) { if (word == 1) { if ('a' <= str[i] <= 'z') { str[i] = str[i] - 32; printf("%c", str[i]); } } if (str[i] == ' ') word = 1; else word = 0; } printf("\n"); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥20 mpp硬解码h264转为yuv
- ¥20 怎样批量对比两个数据库的表差异
- ¥60 具体分析这篇MVC结构springboot框架的安利代码
- ¥15 lettuce连接哨兵redis,主从切换异常
- ¥15 ubuntu出现以下问题
- ¥15 R语言 survIDINRI包已将生存时间转为数值变量,仍错误 Time variable is not numeric。
- ¥15 在Starccm中相变材料的物理模型该如何选择?
- ¥15 关于#android#的问题,请各位专家解答!
- ¥15 C++库文件移植到QT中一直出错
- ¥15 出现报错Debug Assertion Failed,如何解决?