当前位置: 代码迷 >> C语言 >> 求助 字符串处理问题
  详细解决方案

求助 字符串处理问题

热度:127   发布时间:2006-06-05 20:10:00.0
随手写写,没怎么测试,自己注意bug
----------------解决方案--------------------------------------------------------

[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);

这句的意思是什么~~一个字节一个字节的取吗??


----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
  相关解决方案