第十八周实验报告1

来源:互联网 发布:ubuntu 假死 编辑:程序博客网 时间:2024/05/18 17:24
 

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

* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:学会指针访问字符数组                            
* 作    者:  徐嘉健                        
* 完成日期:  2011 年 12 月 25 日
* 版 本 号:  number one        

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

#include <iostream>

#include <string>

using namespace std;

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

int main()
{
    char str1[100] = "I am a student", str2[100] = {'\0'};
    cout << "原字符串为:" << str1 << endl;
    cout << "您希望更改第几位之后的字符串" <<"  ";
    int m;
    cin >> m;
    cout << "\n";
    fun(str1, str2,m);
    cout << str2 << endl;

    return 0;
}

void fun (char * p1,char * p2,int m)
{
    string str;
    int i;
    i = strlen(p1);
    if(m > i)
    {
         cout << "超过原字符串长度" << endl;
    }
    else
   {
       char a;
       string str;
       cout << "您希望更改第" << m << "位之后的字符串" << endl;
       cout << "请输入" << i - m << "位与之替换的字符串:";
       for(int j = 0; j < i - m; j++)
       {
           cin >> a;
           *(p1 + m + j) = a;
       }
       for(;*p1 != '\0'; p1++, p2++)
       {
           *p2 = *p1;
        }
    }
}


 

运行结果:(贴图)

第十八周实验报告1

第十八周实验报告1

经验积累:
1.首先,对老师所给题目的理解很重要,我就理解的有所偏差,我以为老师要让我们将数组str1中的某些字符替换,然后将替换后的整体赋值给数组str2那!!!!!!!!!就像我的实验报告中所写的一样,所以多花了好多的功夫,呜呜~~~~~~~不过也好,一切都是最好的安排,这更有利于我了解指针,掌握指针,很明显的感觉对指针的感悟又有所增强。

2.其实,说回来还是对于指针的把握,对指针作为函数参数的理解和掌握,所以,基础很重要,实践是真理。

3.对于指针的指向要十分的清楚,不然可能会被弄晕的,就像课本中给的一样,在草稿纸中绘图是个很好的方法。
上机感言:

指针真的是很神奇,将实际参数传递给形式参数,在函数的调用过程中,通过改变指向的地址中的数值,其实实现了实际参数与形式参数的双向传递,这是其他变量所不具被的独特能力,当然也正是因为此,它才相对更容易让人找到晕船的感觉,说实话,即使是现在,我也没能很好的驾驭它,实践是检验真理的唯一标准,我真的很想,真正的将指针化为己用。

原创粉丝点击