#include?stdio.h
創(chuàng)新互聯(lián)成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務公司,擁有項目成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元婁星做網(wǎng)站,已為上家服務,為婁星各地企業(yè)和個人服務,聯(lián)系電話:028-86922220
#include?string.h
//?將str字符以spl分割,存于dst中,并返回子字符串數(shù)量
int?split(char?dst[][80],?char*?str,?const?char*?spl)
{
int?n?=?0;
char?*result?=?NULL;
result?=?strtok(str,?spl);
while(?result?!=?NULL?)
{
strcpy(dst[n++],?result);
result?=?strtok(NULL,?spl);
}
return?n;
}
int?main()
{
char?str[]?=?"what?is?you?name?";
char?dst[10][80];
int?cnt?=?split(dst,?str,?"?");
for?(int?i?=?0;?i??cnt;?i++)
puts(dst[i]);
return?0;
}
//以下解法的前提是,先把所有環(huán)變成1.無環(huán)路,2.一個環(huán)沒有扣住3個及以上的其他環(huán)
void?main(){
int?array[16]?=?{0};
//init,?array[1]?=?xxx;根據(jù)輸入初始化數(shù)組,如1-2,則,array[1]?=?2,...
int?HashArray[16]?=?{0};
int?head,?tail;
int?head_tmp,?tail_tmp;
getNextList(array,?HashArray,?head,?tail);
while(getNextList(array,?HashArray,?head_tmp,?tail_tmp))
{
array[tail]?=?head_tmp;
tail?=?tail_tmp;
}
//此時的array數(shù)組里面應該是一條鏈了
}
getNextList(int?array[],?int?Hasharray,?int??head,?int??tail)
{
int?head_tmp?=?1;
while(Hasharray[head_tmp++]?!=?0);
if?(head_tmp?==?16)
return?false;
else
{
head?=?tail?=?head_tmp?-?1;
while(array[tail]?!=?0)
{
Hasharray[tail]?=?1;
tail++;
}
Hasharray[tail]?=?1;
return?true;
}
}
用strtok函數(shù)實現(xiàn)吧。
void split( char **arr, char *str, const char *del)//字符分割函數(shù)的簡單定義和實現(xiàn)
{
char *s =NULL;
s=strtok(str,del);
while(s != NULL)
{
*arr++ = s;
s = strtok(NULL,del);
}
}
int main()
{
int i;
char *myArray[4];
char s[] = "張三$|男$|濟南$|大專學歷$|";
memset(myArray, 0x0, sizeof(myArray));
split(myArray, s, "$|");
for (i=0; i4; i++)
{
printf("%s\n", myArray[i]);
}
return 0;
}