2014-06-24 40 views
1

假設我必須將一個字符串拆分爲單詞(即「我是Mamun」)[這裏的空格不等於] 我已經使用了1個空格作爲分隔符在strtok函數中,但輸出錯誤。有人請解釋這個:(如何通過strtok函數分割單詞如果空格不相等

#include <stdio.h> 
#include <string.h> 

int main() 
{ 
    char str[] ="# Timestep  No_Moles  No_Specs  CO3 CO2 HO CHO2 O CHO3"; 
    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; 
} 

我的代碼:http://codepad.org/eRwUDkVh

+0

首先請在此處顯示您的代碼。目前還不清楚你的意思是說「空間不平等」。 –

+0

感謝您的糾正。這是我的第一個問題,所以我不知道。 「空格不相等」表示字符串中的單詞之間的空格不相等,如果它們之間只有一個空格,但在輸入文件中空格不相等,則該空格將起作用。 – user3772596

回答

1

的問題不是空格的數字不同,那就是後來的領域由tab不是空格分隔所以,簡單地改變

pch = strtok (NULL, " #"); 

pch = strtok (NULL, " \t#"); 
         ^^ 

解決了這個問題。

+0

它的工作原理!謝謝:) – user3772596

+0

@ user3772596太好了,很高興幫助。考慮將此答案標記爲「已接受」,以幫助其他有此相同問題的人順利進行。 –

1

您的字符串中不僅包含空格,還包含選項卡。要根據空格和製表符正確拆分,您應該將字符\t也納入strtok的輸入中。

pch = strtok (NULL, " \t#"); 
+0

它的工作原理!謝謝 :) – user3772596

相關問題