黑马程序员————C语言_练习题解题思路分析(一)
来源:互联网 发布:淘宝连盟 编辑:程序博客网 时间:2024/06/11 08:11
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
第一题:输入一英文句子,将其中所有单词首字符转换成大写后输出。
解题思路:
1)首先定义指针变量接收英文句子
2)提示用户输入、接收英文句子
3)计算输入的句子的长度,调用strlen()函数(要包含string头文件)
4)分情况讨论
当首字母是小写字母时
》表示小写字母区间,并转成大写
》从第二个字母遍历,用for循环
》判断是不是空格,再判断下一个字母是不是空格
》判断是不是小写,是则转成大写字母
当首字母不是小写字母时
》从第一个字母开始遍历(第一个字母可能是空格),用for循环
》判断是不是空格,判断下一个字母是不是空格
》判断是不是小写,是则转成大写
5)输出换行打印
#include <stdio.h>#include <string.h> // 因为使用了strlen()函数int main(){ // 定义一个指针接收英文句子 char *ju; // 提示输入英文句子 printf("请输入一英文句子:\n"); // 接收输入的句子 scanf("%[^\n]",ju); // 计算输入句子的长度 long length = strlen(ju); // 判断第一个字母是不是小写,是就执行下面语句 if( ju[0] > 97 && ju[0] < 122) { // 将小写字母转成大写 ju[0] = ju[0] - 32; // 从第二个字母开始遍历 for(int i = 1;i < length;i++) { // 判断是不是空格,不是就执行语句 if(ju[i] == 32) { // 判断下一个是否为空格 if(ju[i+1] != 32) { // 判断是否为小写 if(ju[i+1]>=97 && ju[i+1]<=122) { // 是则转成大写 ju[i+1] = ju[i+1] - 32; } } } } } // 如果第一个字母不是小写,则执行以下语句 else { //从第一个字母开始遍历,防止第一个字母是空格 for(int i = 0;i<length;i++) { // 判断是不是空格 if(ju[i] == 32) { // 判断下一个字母是不是空格 if(ju[i+1] != 32) { // 判断是不是小写 if(ju[i+1]>=97 && ju[i+1]<=122) { // 是则转成大写 ju[i+1] = ju[i+1] - 32; } } } } } printf("%s\n",ju); return 0;}
易犯错误:
》没包含string头文件
》没用指针定义变量
》接收没用%[^\n]非换行符
》没计算句子长度
》没判断空格的情况
》字符串输出%s
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
0 0
- 黑马程序员————C语言_练习题解题思路分析(一)
- 黑马程序员—C语言_函数
- 黑马程序员—C语言_指针
- 黑马程序员————C语言_基础知识整理(一)
- 黑马程序员—C语言_基础语法
- 黑马程序员—C语言_基本运算
- 黑马程序员—C语言_流程控制
- 黑马程序员—C语言_数组、字符串
- 黑马程序员—C语言_结构体、枚举
- 黑马程序员—C语言_预处理指令
- 黑马程序员—C语言_基本数据类型
- 黑马程序员—学习练习题
- 黑马程序员——C语言基础——指针编程练习题
- 黑马程序员——C语言函数的返回值笔记和练习题
- 黑马程序员——08C语言内存分析
- 一、黑马程序员————C语言总结
- 黑马程序员———C语言 一维数组
- 黑马程序员——Object-C基础(一)语言简介
- Iris Network Traffic Analyzer简易教程
- Sobel算子理论及openCV实现代码
- loadrunner不能添加Apache监控
- loadrunner监控iis指标
- C语言中把数字转换为字符串-sprintf(转载)
- 黑马程序员————C语言_练习题解题思路分析(一)
- matlab 生成独立程序(给自己备份用)
- 基于PCA和SVM的人脸识别
- ABAP程序编写过程中怎么提高程序执行效率五
- java 共享锁和ReentrantReadWriteLock
- chromium thirt_party skia编译shared_liberary
- 背包问题第k优解
- cadence实用技巧
- 飞机票(一个神奇的脚本)