任务:有一字符串,包含n个字符。实现函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串,当m值大于str1的长度n时,输出空字符串。
实验目的:学会指针访问字符数组
实验内容:从字符数组中取出指定位置开始的子符串
/* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: substr.cpp
* 作 者: 贺利坚
* 完成日期: 2011 年 12 月 22 日
* 版 本 号: v1.0
* 对任务及求解方法的描述部分
* 输入描述:字符串str1和开始位置m
* 问题描述:将字符串str1中从第m个字符开始的全部字符复制成为另一个字符串并输出。
* 算法说明:若m大于str1的长度,返回空串,否则,复制从m位置开始的直到结束的所有符号。
*/
#include <iostream>
using namespace std;
void fun(char*, char*, int);
int main()
{
charstr1[100]="I am a student",str2[100];
int m;
cin>>m;
fun(str1,str2,m);
cout<<str2<<endl;
return 0;
}
void fun(char *p1, char *p2, int m)
{
intn=strlen(p1);
if(n<m)
{
cout<<"No trans\n";
*p2='\0'; //此处必须有赋值,否则不能称为字符串,当然,空串也是串。
return;
}
p1=p1+m-1;
for(int i=m;i<n;i++)
*p2++=*p1++;
*p2='\0'; //复制完后,结尾应该赋值'\0',作为字符串结束
return;
}