我有這個字符串: char *path = " one\\\two\\\five\\\six";
如何使用「\」或「」分割字符串?
我想單獨給一個數組時,每一個細胞是字符串。 我正在使用strtok
,買我的問題是在計算爲陣列分配多少空間。
我這樣做:
for (i = 0 ; i < strlen(path) ; i++)
{
if (path[i] == '\' && path[i+1] == '\') /*doesn't work! :(*/
counter++
}
比較線是不工作...我也嘗試寫:「\」,但它不能正常工作。 有什麼不對?
編輯 我試圖使用的strtok和它得到的凌亂:(
char seps[] = "\\";
char *elemName = NULL;
elemName = strtok(path, seps);
while(elemName != NULL)
{
/* While there are tokens in "string" */
/*copy the elemName*/
stringArr[runner] = strdup(elemName);
/* Get next token: */
elemName = strtok(NULL, seps);
}
printf("printing the strings!!!!\n");
for (i = 0 ; i < arr_size ; i++)
{
printf (" %s \n " , stringArr[i]);
}
你逃離「與第一\,我相信你必須使用if(路徑[我] == '\\' &&路徑[I + 1] == '\\')。這是因爲第一個「告訴下一個」被用作「符號」而不是再次作爲逃避符號。所以作爲回報\\給你一個「\」字母來比較。 – Najzero
我還會注意到,在最後一次迭代中,你是越界的路徑[i + 1]將參加垃圾 – Yarneo
我很抱歉沒有取消你的名字... path [i]是一個char..can我用它的ascii?像:char [i] == 92 && char [i + 1] == 92 ..?以及如何在比較時輸入兩個字符? :'\\'是兩個字符不是? – user1386966