第18周报告1:指向字符的指针
实验目的:学会指针访问字符数组
实验内容:从字符数组中取出指定位置开始的子符串
* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: substr.cpp
* 作 者: 刘镇
* 完成日期: 2011 年 12 月 21 日
* 版 本 号: 1.022
* 对任务及求解方法的描述部分
* 输入描述:字符串str1和开始位置m
* 问题描述:将字符串str1中从第m个字符开始的全部字符复制成为另一个字符串并输出。
* 算法说明:若m大于str1的长度,返回空串,否则,复制从m位置开始的直到结束的所有符号。
运行结果:
实验目的:学会指针访问字符数组
实验内容:从字符数组中取出指定位置开始的子符串
* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作
* 完成日期:
* 版 本 号:
* 对任务及求解方法的描述部分
* 输入描述:字符串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.对于要求的大与句子长度的要变为空字符串,确实没多么深入想,结果造成不必要的麻烦。
上机感言:对于每一个步骤都要有充分思考,就像烧水,上面开了,下面没开,结果还是不会烧开。