c语言 输入一个字符串,将该字符串中从第m个字符开始的全部字符复制到另一个字符串,m由用户输入
2022-12-11 · 百度认证:北京惠企网络技术有限公司官方账号
正确程序如下:
#define N 20//宏定义:定义数组长度
#include<iostream>
using namespace std;
int main()
{
int m, i;//定义指定复制元素起始坐标和循环变量
char a[N], b[N];//定义两个长度相同的数组
cout << "请输入字符串:";
gets_s(a);//按照提示:利用字符输入函数进行字符串输入并存到a数组中
cout << "请输入m:";
cin >> m;//按照提示:输入指定复制元素起始坐标
for (i = 0; b[i - 1] != '\0'; i++)//遍历从指定元素开始,到字符串结束停止
{
b[i] = a[i + m -1 ];//从a数组第m个元素开始依次复制给b数组
}
cout << "第m个后面的字符串为:" << b << endl;//输出b数组内容(即结果)
return 0;
}
输出结果如下:
扩展资料:
//指针方法完成字符串的复制
#include<stdio.h>
void copy_string(char *from,char *to); //函数声明
void main()
{
char *fro,*t;//定义两个指针变量
char a[]="I am a teacher.";//定义两个字符串数组
char b[]="You are a student.";
printf("a=%s\nb=%s\n",a,b);//输出a,b两数组内容
fro=a;t=b;//将a数组初始地址给fro,b数组初始地址给t
printf("\ncopy string a to string b:\n");
copy_string(fro,t);//用函数进行COPY(此处不用带指针符号*,利用的地址直接传送)
printf("string a=%s\nstring b=%s\n",a,b);
}
void copy_string(char* from,char* to)
{
while(*from!='\0')//数组未结束则继续
{
*to=*from;//数组元素复制
from++;to++;//指向下一个数组元素地址
}
*to='\0';//字符串的最后一个字符为\0
}