帮看下原因,为啥输出后面几位是乱码?
#include<stdio.h>#include<stdlib.h>
#include<string.h>
#define n 20
char *fn(char *p,int m)
{
char s[50];
int i;
p=p+m-1;i=0;
while(*p!='\0')
{
s[i]=*p;
p++;i++;
}
s[i]='\0';
return s;
}
main()
{
char string[n];
int m;
char *p;
printf("输入一个字符串。\n");
gets(string);
printf("输入数字m。");
scanf("%d",&m);
p=fn(string,m);
while(*p!='\0')
{
printf("%c",*p);
p++;
}
system("pause");
}
就是取一个字符串的m位开始输出