问题 问答题

请编写一个函数char *fun(char *s,int n)。函数fun()的功能是将字符串s中的字符“循环左移”n位。例如,输入“ABCDE”,则循环左移2位应输出“CDEAB”,输入“1234567”,循环左移3位应输出“4567123”。
注意:部分源程序已存在文件PROC13.cpp中。
请勿修改主函数和其他函数中的任何内容,仅在函数fun()的花括号中填写若干语句。
文件PROC13.cpp的内容如下:
//PROC13.cpp
#include <iostream>
#include <string>
using namespace std;
char *fun(char *s,int n);
int main()

char str[81];
int n;
cout<<"Enter a string(less than 80 char)\n”;
cin>>str;
cout<<"\n Enter n:";
cin>>n;
if(n>strlen(str))

cout<<"\n Data overflow";
return 0;

cout<<"The result is: "<<fun(str,n)<<end1;
return 0;

char *fun(char*s,int n)

//* * * * * *

答案

参考答案:函数fun()的定义如下:
char *fun(char*s,int n)
{
char k;
int i,len=strlen(s);
for(i=0;i<n;i++)
{
k=*s;
strcpy(s,s+1);
s[len-1)=k;
}
return s;
}

解析: 本题可用for循环语句实现。

单项选择题
单项选择题