C++程序设计实验报告(二十五)

第18周报告1:指向字符的指针

实验目的:学会指针访问字符数组
实验内容:从字符数组中取出指定位置开始的子符串

* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:  substr.cpp                           
* 作    者:  刘镇                           
* 完成日期:  2011 年 12 月 21 日
* 版 本 号:  1.022       

* 对任务及求解方法的描述部分
* 输入描述:字符串str1和开始位置m
* 问题描述:将字符串str1中从第m个字符开始的全部字符复制成为另一个字符串并输出。
* 算法说明:若m大于str1的长度,返回空串,否则,复制从m位置开始的直到结束的所有符号。

* 程序头部的注释结束

#include<iostream>

using namespace std;

void fun(char*, char*, int);

int main()
{
    char str1[100] = "I am a student", str2[100];
    int m;
 
 cout << "输入您想要开始复制的位置:" << endl;
    cin >> m;
    fun(str1, str2, m);
    cout << str2 << endl;
    return 0;
}
//下面实现自定义函数
void fun(char*p1, char*p2, int m)
{
 int n = strlen(p1);
 if(m > n)
 {
  cout << "超出句子长度!";
  *p2 = '\0';
 }
 
 else
 {
  for(int i = 0; *p1 != '\0'; i++, *p1++)
  {
   if(i >= m)
   {
    *p2 = *p1;
    *p2++;
   }
  }
  *p2 = '\0';
 }
 
 return;
}

运行结果:


经验积累:
1. 指针是数组的祖先,因此,对于用指针只会比数组更容易操作,但思维要活得多。
2.对于此次实验,让我烦恼的在于对于数组的长度可以用strlen,但用其求指针,遇到点小障碍,strlen(*p)还是strlen(p),其实就是对指针还缺乏深入认识。
3.对于要求的大与句子长度的要变为空字符串,确实没多么深入想,结果造成不必要的麻烦。

上机感言:对于每一个步骤都要有充分思考,就像烧水,上面开了,下面没开,结果还是不会烧开。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值