当前位置: 代码迷 >> C语言 >> 求助 关于字符串中特殊字符的位置获取!
  详细解决方案

求助 关于字符串中特殊字符的位置获取!

热度:196   发布时间:2006-06-06 15:16:00.0
求助 关于字符串中特殊字符的位置获取!

@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;
}


----------------解决方案--------------------------------------------------------
以下是引用blackkey在2006-6-6 15:16:00的发言:

@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;
}
----------------解决方案--------------------------------------------------------
  相关解决方案