解题思路:
定义一个空数组b,将a数组m位给b【1】
注意事项:
参考代码:#include<stdio.h>
main()
{
int i,n,m,j,k=0;
char a[100],b[10],*p=a;
scanf("%d",&n);
getchar(); //带走回车符
fgets(a,n+1,stdin); //'\0' 还有一位
scanf("%d",&m);
for(j=m-1,i=0;j<n;j++,i++)
{
b[i]=a[j];
}
b[i]='\0'; //别忘啦给b数组末尾加字符串标识
printf("%s",b);
}
0.0分
2 人评分
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { char a[1024] = { 0 }; int b,c; scanf_s("%d", &b); setbuf(stdin, NULL); for (int i = 0; i < b; i++) { scanf("%c", &a[i]); } setbuf(stdin, NULL); scanf_s("%d", &c); c -= 1; for (int j=c; j < b; j++) { printf("%c", a[j]); } return 0; }可以帮我看看我这个是哪里错了吗??
请问我一开始没加结束符,输出的bcde倒是有,但后面总是多出一些乱七八糟的符号,这是为什么,明明开辟的空间m-n+1个char字符,为什么还会多分配出来导致乱七八糟的符号呢?求解答,给您看下我本来的代码,和您的差不多 #include<stdio.h> int main() { int n, m,i,j=0; char *str,*substr; scanf("%d", &n); str = (char *)malloc((n+1) * sizeof(char)); scanf("%s",str); scanf("%d",&m); substr= (char *)malloc((n-m+1) * sizeof(char)); for (i = m - 1; i<n; i++) { substr[j++] = str[i]; } //substr[j] = '\0'; printf("%s", substr); return 0; } 结果输出是这样滴bcde 几个其他字符
123 2018-09-05 18:47:27 |
几个月没打代码,竟然让我看啦好久……言归正传:你的代码我觉得应该没问题运行也没错,我直接提交也通过啦呢啊
C语言训练-8除不尽的数 (C语言代码)暴力解法,答案只有一个,直接输出就好了浏览:1015 |
C二级辅导-公约公倍 (C语言代码)浏览:2122 |
陶陶摘苹果 (C语言代码)浏览:1606 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:2468 |
不知道哪里错了浏览:1144 |
简单的a+b (C语言代码)浏览:542 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:415 |
程序员的表白 (C语言代码)浏览:661 |
printf基础练习2 (C语言代码)浏览:644 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:883 |