正確程序如下:
#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
}