重复字符串---C语言
时间: 1ms 内存:128M
描述:
输入一个字符串,将其重复若干次,例如,输入goal和5,得到的就是球迷的欢呼:goalgoalgoalgoalgoal。
不急着欢呼,先补充完整下面的程序。还需要注意的是,给出的程序段中,还藏着一个小Bug,需要你将其改过来。
#include <stdio.h >
#include <string.h>
void strcopy(char*,char*,int);
int main( )
{
char str1[80];
char str2[80];
int n;
gets(str1);
scanf("%d",&n);
strcopy(str2,str1,4);
printf("%s\n",str2);
return 0;
}
输入:
一个待重复的字符串
重复的次数
输出:
重复后的文字
示例输入:
goal
5
示例输出:
goalgoalgoalgoalgoal
提示:
参考答案(内存最优[1092]):
#include<stdio.h>
#include <string.h>
void strcopy(char a[],char b[],int m);
int main( )
{
char str1[80];
char str2[80];
int n;
gets(str1);
scanf("%d",&n);
strcopy(str2,str1,n);
printf("%s\n",str2);
return 0;
}
void strcopy(char a[],char b[],int m)
{
int q;
int i, j, c=0;
q=strlen(b);
for(j=0;j<m;j++)
{
for(i=0;i<q;i++)
a[c++]=b[i];
}
a[c]='\0';
}
参考答案(时间最优[0]):
#include <stdio.h>
#include <string.h>
void strcopy(char*,char*,int);
int main( )
{
char str1[80];
char str2[80];
int n;
gets(str1);
scanf("%d",&n);
strcopy(str2,str1,n); // 有错,改为strcopy(str2,str1,n);
printf("%s\n",str2);
return 0;
}
void strcopy(char * p2,char *p1,int n) //字符指针做函数参数
{
int i;
p2[0]='\0'; //p2所指数组第一个字符是'\0',表示一个空串
for(i=0;i<n;i++) //在p2后拼接p1所指向字符串n次
strcat(p2,p1);
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。