Manchester


私信TA

用户名:wenyajie

访问量:333886

签 名:

在历史前进的逻辑中前进,这个逻辑就是人心向背的逻辑

等  级
排  名 1
经  验 65834
参赛次数 1
文章发表 188
年  龄 0
在职情况 学生
学  校 Xiamen University
专  业 计算机科学

  自我简介:

在历史前进的逻辑中前进,这个逻辑就是人心向背的逻辑

解题思路:
1:输入一个整数n,开辟两次n个字符空间;

2:输入n个字符;(这里默认没有空格等字符)

3:输入一个整数m;

4:求复制的字符个数;

5:把从m开始的字符复制到另一字符串;

6:输出;

代码一(字符没有空格,正确)

#include <stdio.h>
#include <string.h>
#include <malloc.h>

int main()
{
    int n, m, t;
    scanf( "%d", &n );

    char *a, *b;
    a    = (char *) malloc( n * sizeof(char) );
    b    = (char *) malloc( n * sizeof(char) );
    scanf( "%s", a );
    scanf( "%d", &m );
    t = n - m + 1;


    for ( int i = 0; i < t; i++ )
    {
        b[i] = a[m - 1]; m++;
    }

    printf( "%s", b );
    return(0);
}

代码二:(字符有空格)

#include <stdio.h>
#include <string.h>
#include <malloc.h>

int main()
{
    int n, m, t;
    scanf( "%d", &n );
    getchar();
    char *a, *b;
    a    = (char *) malloc( n * sizeof(char) );
    b    = (char *) malloc( n * sizeof(char) );
    gets( a );
    scanf( "%d", &m );
    t = n - m + 1;


    for ( int i = 0; i < t; i++ )
    {
        b[i] = a[m - 1]; m++;
    }

    puts( b );
    return(0);
}

别忘点赞哦-.-

 

0.0分

58 人评分

新上线《蓝桥杯辅导》课程,近五年的蓝桥杯省赛与国赛真题都有,从读题开始理解题意、梳理思路、实现代码再提交评测全过程,可有效提升获奖比例甚至进国赛!课程介绍、试听请猛击这里

  评论区

#include<stdio.h>
#include<string.h>
int main()
{
    int n, m; char arr[100] = { 0 };
    scanf("%d", &n);
    scanf("%s", arr);
    scanf("%d", &m);
    strcpy(arr, arr + m - 1);
    puts(arr);
    return 0;
}
2024-05-13 23:49:46
#include <stdio.h>
#include <string.h>
int main()
{
    void copy(char STR[99], int M,int N);
    int i,n, m;
    char str[99];
    scanf("%d", &n);
    getchar();
    for (i = 0; i < n; i++)
    {
        scanf("%c", &str[i]);
    }
    str[i] = '\0';
    scanf("%d", &m);
    copy(str, m,n);
    return 0;
}


void copy(char STR[99], int M,int N)
{
    int i,j=0;
    char brr[99];
    for (i = M - 1; i < N; i++)
    {
        brr[j] = STR[i];
        j++;
    }
    brr[j] = '\0';
    for (i = 0; i < strlen(brr); i++)
    {
        printf("%c", brr[i]);
    }
}
2023-04-20 20:05:47
#include<stdio.h>
#include<malloc.h>
int main(){
	int n;
	scanf("%d",&n);
	getchar();
	char *p=(char*)malloc(n*sizeof(char));
	gets(p);
	int m;
	scanf("%d",&m);
	for(int i=m-1;i<n;i++)
	{
		printf("%c",p[i]);
	}
	free(p);
	return 0;
}
2023-02-05 17:22:13
这里一定要申请动态储存嘛?
2022-11-02 12:12:00
这里getchar的作用是什么
2022-06-28 12:08:43
#include<iostream>
#include<string>
using namespace std;
int main()
{
    int a,b;
    string str;
    cin >> a;
    fflush(stdin);//清空缓冲区
    for(int i=0;i<a;i++)
    {
    	char c;
    	c=getchar();
		str.append(1,c);
	}
	cin>>b;
    str=str.substr(b-1);
	cout<<str;
    return 0;
}
可以帮忙看一下哪有问题吗
2021-12-01 21:37:39
#include<stdio.h>
int main()
{
	int n,m;
	scanf("%d",&n);
	getchar();
	char a[n];
	gets(a);
	scanf("%d",&m);
	char b[n+1-m];
	for(int i=m-1,j=0;i<n;i++,j++)
	{
	    b[j]=a[i];
	}
	printf("%s",b);
	return 0;
}
百思不得其解,为什么例题给的输出多个问号?
2021-11-21 14:19:10
#include<stdio.h>
#include<string.h>
#include<malloc.h>
void fun(char a[]);
int n,m;
int main(){
scanf("%d",&n);
char *a=(char*)malloc(n*sizeof(char)); 
scanf("%s",a);
scanf("%d",&m);
fun(a);
return 0;
}

void fun(char a[]){int c=n-m+1;int i=0;
char *b=(char*)malloc(c*sizeof(char)); 
for(m;m<=n;m++){
b[i]=a[m];i++;
} for(i=0;i<m;i++){printf("%c",b[i]);
}
}
2021-10-13 17:47:36