@v1 = $123,abc,123,abc,234,bcd,345$
如何可以取的 第二个 逗号的位置 。
我可以通过函数strcspn(...);取得第一个逗号的位置~~如何取得第二个逗号的位置,以及如何取得第三个逗号的位置!等`~
[此贴子已经被作者于2006-6-6 15:16:46编辑过]
----------------解决方案--------------------------------------------------------
用循环啊。给个实例给LZ吧。
---------------------------
#include <stdio.h>
#include <string.h>
#include<alloc.h>
int main(void)
{
char *string1 = "12,34,56,7890";
char *string2 = ",";
int length = 0;
int flag = 0;
int i;
for (i = 1; i <=3; i++)
{
length = strcspn(string1+length, string2)+1;
flag +=length;
}
printf("Character where strings intersect is at position %d\n", flag);
return 0;
}
----------------解决方案--------------------------------------------------------
如
@v1 = $123,abc,123,abc,234,bcd,345$
如何可以取的 第二个 逗号的位置 。
我可以通过函数strcspn(...);取得第一个逗号的位置~~如何取得第二个逗号的位置,以及如何取得第三个逗号的位置!等`~
这是捧着金饭碗讨饭哪!恕我直言。
char s[ ]="@v1 = $123,abc,123,abc,234,bcd,345$";
int pos1,pos2,pos3;
pos1 = strcspn(s,","); //得到第1个逗号的下标
pos2 = strcspn(s+pos1+1,","); //得到第2个逗号的下标
pos3 = strcspn(s+pos2+1,","); //得到第3个逗号的下标
----------------解决方案--------------------------------------------------------
恕我直言,你没有仔细看我昨天的代码,否则这个问题根本不会困扰你
#include <stdio.h>
char *fun(char * str,char c,int n);
int main()
{
char *a="$123,abc,123,abc,234,bcd,345$";
printf("%s\n",fun(a,',',1));
printf("%s\n",fun(a,',',2));
printf("%s\n",fun(a,',',3));
}
char *fun(char * str,char c,int n)
{
int i=0;
char *ptr=str;
while(*ptr)
{
if(*ptr==c)
{
i++;
if(i==n)break;
}
ptr++;
}
return ptr;
}
----------------解决方案--------------------------------------------------------