----------------解决方案--------------------------------------------------------
[QUOTE]有没有直接取的函数
如同SQL语言里的substring
例:
@v1 = $123,abc,123$
substring(@v1,6,3) = abc
其中“6”代表从第6位开始取,取3个字节[/QUOTE]
就这样吧
#include "stdio.h"
#include "conio.h"
char * fun(char *str1,char *str2,int a,int b);
main()
{ char a[80];
printf("%s\n",fun(a,"asdas,133557,tyrty",7,6));
getch();
}
char * fun(char *str1,char *str2,int a,int b)
{
char *ptr1=str1;
for(int i=a;i<a+b;i++)
{
*ptr1++=*(str2+i-1);
}
*ptr1=0;
return str1;
}
----------------解决方案--------------------------------------------------------
谢谢`~测试成功~~基本功能实现`
但是我对代码不熟悉!
能不能讲讲代码~~~
*ptr1++=*(str2+i-1);
这句不是很理解`~
----------------解决方案--------------------------------------------------------
*ptr1++=*(str2+i-1); =>
*ptr1=*(str2+i-1);
ptr1++;
还有,你得自己改改,我没做容错处理
char * fun(char *str1,char *str2,int a,int b)
{
char *ptr1=str1;
if(!str1||!str2)return -1;//如这样,str1,str2指向都不能为空
for(int i=a-1;i<a+b-1;i++)
{
*ptr1++=*(str2+i);
}
*ptr1='\0';
return str1;
}
----------------解决方案--------------------------------------------------------
*ptr1=*(str2+i-1);
这句的意思是什么~~一个字节一个字节的取吗??
----------------解决方案--------------------------------------------------------
对
----------------解决方案--------------------------------------------------------