第09天C语言(09):指向函数的指针练习
第09天C语言(09):指向函数的指针练习
lyh2017iOS 发表于8个月前
第09天C语言(09):指向函数的指针练习
  • 发表于 8个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

#pragma mark 指向函数的指针练习 ###pragma mark 概念

/**
 控制台输出 po * xxx
 
 */

###pragma mark 代码

#include <stdio.h>
char upper(char value);
void upperCase(char *p);
//void ts(char *temp);
void ts(char *temp, void (*funtionP)(char *));
int main()
{
#warning 要求用户输入的一段英文,将用户输入的英文单词所有的首字母大写
    // hello world -- > Hello World
    
    // 1. 接收用户输入的字符串
    // 2. 遍历字符串,判断当前字符串是不是空格,如果是空格将下一个字符转成为大写
    
    // 1. 先实现接收字符串
    // 2. 再实现字母的大小写转换
    // 3. 再实现替换字符串中的单词首字符
    /*
    printf("请输入一句英文, 单词之间用空格隔开\n");
//    char *str;
    char str[100];
//    scanf("%s",str);
    gets(str);
    printf("str = %s\n",str);
     */
    
    /*
    char c = 'a';
//    printf("c = %c\n",upper(c));
//    printf("c = %c\n",upperCase(&c));
    upperCase(&c);

    printf("c = %c\n",c);
     */

    // 1. 接收用户输入
    printf("请输入一句英文, 单词之间用空格隔开\n");
    //    char *str;
    char str[100];
    //    scanf("%s",str);
    gets(str);
    // 注意: 数组名称不能做+1的操作,只有指针才可以
    
    /*
    char *temp = str;
    // 2.遍历字符串
    // temp = &str[0]
    upperCase(temp);

    while (*temp != '\0') { // 第一次取出 h
        // 2.1 取出当前的字符,判断是否等于 空格, 如果等于空格就需要将下一个字符转为 大写
        if ((*temp) == ' ') {
            // 2.2 将下一个字符串转为大写
            upperCase(++temp);
            
        }
        else
        {
            temp++;
        }
    }
     */
//    ts(str,upperCase(str));
    ts(str, upperCase);
    printf("str  = %s",str);
    
    return 0;
}


void ts(char *temp, void (*funtionP)(char *))
{
    // 1.不管三七二十一 先将第一个字母转换为大写
    // 2.遍历字符串
    // temp = &str[0]
    upperCase(temp);
    
    while (*temp != '\0') { // 第一次取出 h
        // 2.1 取出当前的字符,判断是否等于 空格, 如果等于空格就需要将下一个字符转为 大写
        if ((*temp) == ' ') {
            // 2.2 将下一个字符串转为大写
//            upperCase(++temp);
            funtionP(++temp);
            
        }
        else
        {
            temp++;
        }
    }
}
void upperCase(char *p)
{
    // 1. 判断是不是小写字母
    if (*p >='a' && *p <= 'z')
    {
        // 2.将小写字母转成大学字母
        *p = *p - ('a' - 'A');
    }
}

// 将首字母小写 转成 大写
char upper(char value)
{
    // 1. 判断是不是小写字母
    if (value >='a' && value <= 'z')
    {
        // 2.将小写字母转成大学字母
        value = value - ('a' - 'A');
    }
    
    return value;
}

标签: C语言
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 354
码字总数 137380
×
lyh2017iOS
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: