2014-09-19 108 views
-2

假設我已經輸入的字符串:如何獲取包含來自C中字符串的字的子字符串?

輸入:

My name is John 

如何從這個字符串將包含所有單詞的子?

OUTPUT:

My 
name 
is 
John 
+0

什麼?你想複製字符串嗎?使用'strdup'。 – 2014-09-19 06:07:19

+0

沒有抱歉..我想這個問題第一次不夠清楚.. 我想要子字符串包含輸入字符串中的單詞。 – 2014-09-19 06:10:53

+0

當你想要所有的詞爲什麼你需要子串?或者如果你的意思是其他任何明確你的問題。 – InvincibleWolf 2014-09-19 06:11:17

回答

4

使用strtok

int main() 
{ 
    char str[] ="My name is John "; 
    char * pch; 
    printf ("Splitting string \"%s\" into tokens:\n",str); 
    pch = strtok (str," "); 
    while (pch != NULL) 
    { 
     printf ("%s\n",pch); 
     pch = strtok (NULL, " "); 
    } 
    return 0; 
} 
+0

非常感謝。正是我在找什麼.. 我對C很新,所以不知道該怎麼做。 非常感謝各位代表:) 保重:) – 2014-09-19 06:15:29

+0

如果此答案爲您解決了問題,請記得單擊旁邊的大記號將其標記爲接受的答案。 – 2014-09-19 06:28:18

1

你可以使用的strtok() 那裏你必須給作爲第一個參數字符串,並作爲第二個參數的標記。 對於每個輔助調用,您必須將null設置爲第一個參數,並將第一個參數設置爲第二個參數,即首先出現的字符int要替換爲\0的字符串。 函數返回子字符串ehich上的指針,這是因爲\0令牌正是你想要的。你的情況,你應該使用這樣的:

strtok (YourNonConstString, " "); 

while (cp = strtok (NULL, " ") != NULL) 
{ 
//Gotta do Here your stuff with cp as in each loop it contains the substring. 
} 
相關問題