18.1

来源:互联网 发布:万游传奇数据库编辑器 编辑:程序博客网 时间:2024/06/17 03:08
 

18周任务1

(2011-12-22 17:51:14)[编辑][删除]
转载
标签:

杂谈

 

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

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

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

18周任务1

#include <iostream>
using namespace std;
void fun(char*, char*, int);
int main()
{
char str1[100]="I am a student",str2[100];
int m;
cout<<"请输入一个值:";
cin>>m;
fun(str1,str2,m);
cout<<str2<<endl;
return 0;
}
void fun (char*p,char*q,int m)//q,p,m必须得有,无非就是两个指针间的赋值,不涉及两个字符串,并没有想像的那样复杂。
{
                          //可以是char str[100];调用函数中不能出现char str[100]
 if(m<14)                  //可以是str[m]!='\0'
                            
 for(int i=0;*(p+i)!='\0';p++)//必须用单引号,否则会认为是整型。
 {
  *q=*(p+m+i);//必须有m,因为p是从首地址开始的
  cout<<*q;
 }
 }
 else
  cout<<'\0';
 
}

  
感言:注意细节问题,如p是从首地址开始的。

原创粉丝点击