任务:有一字符串,包含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; }