#include <stdio.h> #define LEN 100 void Copy(char a[], char b[], int n, int m); int main(void) { char a[LEN], b[LEN]; int n, m; scanf("%d", &n); getchar(); fgets(a, n + 1, stdin); //n+1就是读取输入的n个字符,后接一个'\0' scanf("%d", &m); Copy(a, b, n, m); printf("%s\n", b); return 0; } void Copy(char a[], char b[], int n, int m) { int i, j = 0; for (i = m - 1; i <= n; i++) //i<=n 因为也要把结束符给拷贝进去 b[j++] = a[i]; }
0.0分
10 人评分
#include<stdio.h> #include<math.h> void a(int n,char x[],char k[],int m) { int i,j=0; for(i=m-1;i<n;i++) { k[j++]=x[i]; } } void a(int n,char x[],char k[],int m); int main(void) { int n,i; char x[100]; char k[100]; int m; scanf("%d",&n); scanf("%s",&x); scanf("%d",&m); a(n,x,k,m); for(i=0;i<=m;i++) { printf("%c",k[i]); } printf("\n"); return 0; } 求求了,这哪里错了
#include<stdio.h> int main() { int n,m; scanf("%d",&n); char a[n]; gets(a); scanf("%d",&m); char b[n-m]; for(int i=m-1,j=0;i<n;i++,j++) { b[j]=a[i]; } puts(b); return 0; } 我这斯哪里错了……
fgets()跟gets()一样,但是优于gets()因为fets()是给了存储空间大小,这样可以防止内存溢出。fgets()遇到'\n'会停止输入,因为scanf最后会缓存一个回车,必须清除这个缓存(清除缓存可以在scanf后面加fflush(stdin);),或者用getchar()去接收这个回车,不然的话,fgets()不能输入字符
那个scanf("%d",&n); 这个最后会有一个enter键 是用getchar去接受这个enter键吗
MarkandLcg 2020-02-28 19:42:32 |
是的
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:695 |
用筛法求之N内的素数。 (C语言代码)浏览:802 |
Minesweeper (C语言描述,蓝桥杯)浏览:1119 |
1035 题解浏览:776 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:579 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:342 |
前10名 (C语言代码)浏览:725 |
青年歌手大奖赛_评委会打分 (C语言代码)浏览:2138 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:455 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:498 |