定义一个函数mid( 字符串 str1[], 起始位置 ,取字符个数 ),返回字符串str2[],以下是我的代码,不知道错在哪,请各位高手指教!
#include<stdio.h>
char mid(char str1[],int n,int n1);
void main()
{
char str1[30];
int n1,n;
printf("输入字符串");
gets(str1);
printf("n_");
scanf("%d",&n);
printf("n1_");
scanf("%d",&n1);
printf("%c",mid(str1,n,n1));
}
char mid(char str1[],int n,int n1)
{
char str2[20];
int i;
char *p=str1;
p+=n;
for(i=0;i<n1;i++)
{
str1[i]=*p;
p++;
}
return str2[30];
}
----------------解决方案--------------------------------------------------------
楼主的意思是不是从字符串str1中的第n个字母开始取n1个字符返回?
你的函数是char型,只能返回一个字符
#include<stdio.h>
char *mid(char str1[],int n,int n1);
char str2[20];
void main()
{
char str1[30];
int n1,n;
printf("输入字符串");
gets(str1);
printf("\n_");
scanf("%d",&n);
printf("n1_");
scanf("%d",&n1);
printf("%s",mid(str1,n,n1));
}
char *mid(char str1[],int n,int n1)
{
int i;
char *p=str1;
p+=n;
for(i=0;i<n1;i++)
{
str2[i]=*p;
p++;
}
return str2;
}
不知道是不是你的意图?
----------------解决方案--------------------------------------------------------
是从字符串str1中的第n个字母开始取n1个字符返回.
要把函数也要定义为指针型的?
----------------解决方案--------------------------------------------------------
是从字符串str1中的第n个字母开始取n1个字符返回.
要把函数也要定义为指针型的?
你定义的函数返回单值,应该定义成一个返回指针的函数。
----------------解决方案--------------------------------------------------------
明白了,我菜死了,谢谢啊!!
----------------解决方案--------------------------------------------------------