重复字符串—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);
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。