程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言的字符串分割,C語言字符串分割

C語言的字符串分割,C語言字符串分割

編輯:關於C語言

C語言的字符串分割,C語言字符串分割


說起來很有意思,自認為對C語言理解得還是比較深刻的。但居然到今天才知道有個strtok函數,試用了一下突然感慨以前做了多少重復勞動。每次需要解析配置文件,每次需要分割字符串,居然都是自己去分割字符串,既累人又容易出錯。感概技術學得不夠全面啊!這裡引用一段strtok用法:

The strtok() function returns a pointer to the next "token" in str1, where str2 contains the delimiters that determine the token. strtok() returns NULL if no token is found. In order to convert a string to tokens, the first call to strtok() should have str1 point to the string to be tokenized. All calls after this should have str1 be NULL.

For example:

char str[] = "now # is the time for all # good men to come to the # aid of their country";  
   char delims[] = "#";  
   char *result = NULL;  
   result = strtok( str, delims );  
   while( result != NULL ) {  
       printf( "result is \"%s\"\n", result );  
       result = strtok( NULL, delims );  
   }              
/* 何問起 hovertree.com */
  1. The above code will display the following output:  
  2.   
  3.    result is "now "  
  4.    result is " is the time for all "  
  5.    result is " good men to come to the "  
  6.    result is " aid of their country" 
 這個函數跟編譯器中的詞法分析很像,在以後的文本處理中,會解決很多問題。看來我有必要系統的學習下C的庫函數,而不僅僅是死扎在語法和一些算法技巧上面。這樣在平常的工作中才能事半功倍。
使用這個函數,形如下面的配置文件就非常容易解析:
id1 value1 value2 value3
id2 value1 value2 value3
...
    使用這個函數,分割字符串就更加方便了,例如下面待分割的字符串:
12|2345|asld|alsfalskd
        只要讀取待處理的數據,然後調用四次strtok就能夠解析出每行的值,以前我一般不是自己解析就是用sscanf,但是strtok更加合適,也更加啊靈活!

推薦:
http://www.cnblogs.com/roucheng/p/3454292.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved