Note-07-指针

//
//  main.c
//  Note-07-指针
//
//  Created by 刘佳斌 on 15/11/12.
//  Copyright © 2015年 刘佳斌. All rights reserved.
//

#include <stdio.h>
/* 作业
 
  1. a =100 ;b=65; 通过函数交换a b的值
  2. 游戏辅助  英雄 武器选择之后,如果使用游戏辅助函数,就让英雄血量在原有基础之上增加%50;攻击力增加%50;
 
 */


/*
  1.指针概念: pointer  指向一块地方的东西
     地址:  内存地址 (运行时的数据,是存在内存里面的,每一条数据都有一个地址)
  指针相当于一个内存地址
  指针是一种类型,指针变量是指向一块内存地址的变量

  2.”*“的意义
     1》定义指针变量的时候,“*”表示这是一个指针类型
        int *a:   int *是一个常整数指针类型
     2》当取值的时候,取这个内存地址里面的值的一个符号
 
  “&” 取地址符,可以通过“&”取到一个变量的内存地址   %p内存地址类型输出符号
 
  3.指针与数组
    指针:指向一块内存地址   char *指向一块内存地址,里面存的是一系列的字符
    数组:是固定的一块内存地址   char xx[];数组
 
   指针指向的是数组的内存地址(指向的是数组里面第一个元素的内存地址)
 
   PS.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAX_SMS_LENGTH 200#define MAX_NAME_LENGTH 8#define MAX_PHONE_LENGTH 11typedef struct { char word[MAX_SMS_LENGTH]; /*短信内容*/ int length; /*短信长度*/} Message;typedef struct { char name[MAX_NAME_LENGTH]; /*姓名*/ char phone[MAX_PHONE_LENGTH]; /*电话号码或手机号码*/} Note;void extract_phone_number(Message* message, Note* note) { int start = 0; int phone_start = -1; int phone_end = -1; while (start < message->length) { if (message->word[start] >= '0' && message->word[start] <= '9') { phone_start = start; phone_end = start; start++; while (start < message->length && message->word[start] >= '0' && message->word[start] <= '9') { phone_end = start; start++; } if (phone_end - phone_start == 6 || phone_end - phone_start == 7) { strncpy(note->phone, message->word + phone_start, phone_end - phone_start + 1); note->phone[phone_end - phone_start + 1] = '\0'; } else if (phone_end - phone_start == 10 || phone_end - phone_start == 11) { strncpy(note->phone, message->word + phone_start, phone_end - phone_start + 1); note->phone[phone_end - phone_start + 1] = '\0'; } if (strlen(note->phone) > 0) { break; } } else { start++; } }}void save_to_contact(Note* note) { printf("请输入姓名:"); fgets(note->name, MAX_NAME_LENGTH, stdin); note->name[strlen(note->name) - 1] = '\0'; /*将最后的换行符去掉*/ printf("已将 %s 的电话号码 %s 存储到通讯录中。\n", note->name, note->phone); /*将 note 存储到通讯录中*/}int main() { Message message; Note note; char input[MAX_SMS_LENGTH + 1]; /*输入缓存*/ // 读取短信 printf("请输入一条短信:\n"); fgets(input, MAX_SMS_LENGTH + 1, stdin); message.length = strlen(input) - 1; strncpy(message.word, input, message.length); message.word[message.length] = '\0'; memset(note.name, 0, MAX_NAME_LENGTH); memset(note.phone, 0, MAX_PHONE_LENGTH); extract_phone_number(&message, &note); save_to_contact(&note); return 0;}怎么读取信息
06-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值