解题思路:
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; }
#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]); } }
#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; }
这里getchar的作用是什么
#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; } 可以帮忙看一下哪有问题吗