文档章节

第09天C语言(09):指向函数的指针练习

lyh2017iOS
 lyh2017iOS
发布于 2017/07/06 01:26
字数 564
阅读 2
收藏 0

#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;
}

© 著作权归作者所有

共有 人打赏支持
lyh2017iOS
粉丝 1
博文 357
码字总数 137380
作品 0
朝阳
[iOS]C语言知识点系列视频整理

C语言知识点系列视频 目录 C语言技术视频-01-变量的定义 C语言技术视频-02-程序分支结构(if...else) C语言技术视频-03-程序分支结构(switch) C语言技术视频-04-程序循环结构(while{}) C语言技...

浩浩老师
2015/10/13
38
0
JavaScript 30天每日效果图

JavaScript 30天每日效果图 在Github上看到了wesbos的一个Javascript30天挑战的repo,旨在使用纯JS来进行练习,不允许使用任何其他的库和框架,该挑战共30天,我会在这里复现这30天遇到的挑战...

黎跃春
2017/07/19
0
0
C语言数组与指针一本道来

数组与指针.png 一本道来其他系列 C语言关键字 C语言注释符号一本道来 C语言编译预处理技术一本道来 指针的基础 注意本节内容可能在gcc下不能完成编译,请切换到Windows平台,使用或其他 指针...

PcDack
2017/12/04
0
0
十四、返回指针的函数与指向函数的指针

说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 前言 前面我们花了...

长平狐
2013/03/28
75
0
指针的使用

1.指针与别名陷阱 如果有一块内存区域,指向这块内存区域的指针有多个,其中每一个指针都是其他指针的别名。 别名操作在优化程序是会造成很多麻烦,如下面的例子: 上面的两段代码,第一段访...

大道无名
2016/10/22
10
0

没有更多内容

加载失败,请刷新页面

加载更多

VS code编辑器安装 php7.2 NTS 版本 Xdebug

本文使用的是 phpstudy 一键安装包(windows32位) php 版本是 php7.2 NTS 1、在 phpstudy 面板中开启 phpdebug 扩展 // 其他选项菜单-> php 扩展与设置-> php 扩展 2、官方下载 Xdebug // ...

削个椰子皮_给个梨
13分钟前
1
0
Swagger中配置了@ApiModelProperty的allowableValues属性但不显示的问题

现在用Swagger来生成API文档的例子已经非常多了,今天碰到开发同事问了一个问题,帮着看了一下,主要还是配置方法的问题,所以记录一下。如果您也碰到了同样的问题,希望本文对您有用。 问题...

程序猿DD
44分钟前
1
0
sql 命令

show variables like '%general%'; show variables like '%log_output%'; show variables like '%quer%'; show global status like '%slow%';...

JavaSon712
51分钟前
2
0
Django修改默认数据库引擎

Django默认数据库引擎为sqlite3,除了sqlite3,还支持postgresql、mysql、oracle 配置如下:其中postgresql_psycopg2为postgresql的适配器。 'django.db.backends.postgresql' 'django.db.bac......

MichaelShu
57分钟前
0
0
动画源码解析

目录介绍 1.Animation和Animator区别 2.Animation运行原理和源码分析 2.1 基本属性介绍 2.2 如何计算动画数据 2.3 什么是动画更新函数 2.4 动画数据如何存储 2.5 Animation的调用 3.Animator...

潇湘剑雨
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部